从 Matlab 创建 JSON
Create JSON from Matlab
我有一个包含大量变量的工作区,我想使用 JSONlab 将其转换为 JSON 文档。到目前为止,我的代码如下所示:
loadjason = {'{"Duration":Duration,"Num_Samples":nsamples,"Frequency":Freq,"Num_Channels":nchannels1}')
不在双引号中的项目(即 Freq)是来自我的 MATLAB 工作区的变量,但我的输出是:
Error using loadjson>error_pos (line 482)
JSONparser:invalidFormat: Value expected at position 13:
{"Duration":<error>Duration,"Num_Samples
Error in loadjson>parse_value (line 471)
error_pos('Value expected at position %d');
Error in loadjson>parse_object (line 206)
val = parse_value(varargin{:});
Error in loadjson (line 96)
data{jsoncount} = parse_object(opt);`
如何将变量传递到 loadjson 中,以便它们被读取为值而不是文字?
loadjason = {'{"Duration":Duration,"Num_Samples":nsamples,"Frequency":Freq,"Num_Channels":nchannels1}')
无效 JSON。字符串值,例如 Duration,如果是字符串(例如,'"Duration":"5 seconds"'),则需要用引号引起来。数值不需要引号。例如,'"Duration":5' 是有效的。此外,您最外面的括号不匹配,并且您不需要 { } 将整个字符串括起来两次。修改您的 MATLAB 代码以生成类似这样的内容,
loadjason = '{"Duration":5,"Num_Samples":1,"Frequency":1,"Num_Channels":1}'
取整型值:
loadjason = '{"Duration":'
temp = int2str(Duration)
loadjason = strcat(loadjason,temp)
loadjason = '{"Num_Samples":'
temp = int2str(nsamples)
loadjason = strcat(loadjason,temp)
loadjason += ',{"Frequency":'
temp = int2str(freq)
loadjason = strcat(loadjason,temp)
loadjason += ',{"Num_Channels":'
temp = int2str(nchannels1)
loadjason = strcat(loadjason,temp)
loadjason += '}'
并继续处理其余变量。或者,您可以创建一个函数来为您执行此操作。
我有一个包含大量变量的工作区,我想使用 JSONlab 将其转换为 JSON 文档。到目前为止,我的代码如下所示:
loadjason = {'{"Duration":Duration,"Num_Samples":nsamples,"Frequency":Freq,"Num_Channels":nchannels1}')
不在双引号中的项目(即 Freq)是来自我的 MATLAB 工作区的变量,但我的输出是:
Error using loadjson>error_pos (line 482)
JSONparser:invalidFormat: Value expected at position 13:
{"Duration":<error>Duration,"Num_Samples
Error in loadjson>parse_value (line 471)
error_pos('Value expected at position %d');
Error in loadjson>parse_object (line 206)
val = parse_value(varargin{:});
Error in loadjson (line 96)
data{jsoncount} = parse_object(opt);`
如何将变量传递到 loadjson 中,以便它们被读取为值而不是文字?
loadjason = {'{"Duration":Duration,"Num_Samples":nsamples,"Frequency":Freq,"Num_Channels":nchannels1}')
无效 JSON。字符串值,例如 Duration,如果是字符串(例如,'"Duration":"5 seconds"'),则需要用引号引起来。数值不需要引号。例如,'"Duration":5' 是有效的。此外,您最外面的括号不匹配,并且您不需要 { } 将整个字符串括起来两次。修改您的 MATLAB 代码以生成类似这样的内容,
loadjason = '{"Duration":5,"Num_Samples":1,"Frequency":1,"Num_Channels":1}'
取整型值:
loadjason = '{"Duration":'
temp = int2str(Duration)
loadjason = strcat(loadjason,temp)
loadjason = '{"Num_Samples":'
temp = int2str(nsamples)
loadjason = strcat(loadjason,temp)
loadjason += ',{"Frequency":'
temp = int2str(freq)
loadjason = strcat(loadjason,temp)
loadjason += ',{"Num_Channels":'
temp = int2str(nchannels1)
loadjason = strcat(loadjason,temp)
loadjason += '}'
并继续处理其余变量。或者,您可以创建一个函数来为您执行此操作。