{
"NX-Matlab":
{
"Volumen": 200,
"Wanddicke": 3
},
"Matlab-NX": {
"n1": {
"Fließ barriere oder Fließhilfe": 1,
" Querschnittsart": 1,
"Geometrieparameter": {
"Breite": 2,
"Höhe": 4.479,
"Anzahl": 3
代码:
clc
fid = fopen('filename.json', 'r');
str = fread(fid,'*char').';
fclose(fid);
J = jsondecode(str);
J.Matlab_NX.n1.Geometrieparameter.Breite = 3;
outputjson = jsonencode(J);
fileID = fopen('filename.json','w');
fwrite(fileID, outputjson);
fclose(fileID);
我想在文件中替换Updated参数(Breite)。需要指导。
答案 0 :(得分:2)
如果您使用的是R2016b或更高版本,则可以使用jsondecode
将JSON数据转换为struct
。然后,您可以使用jsonencode
修改所需的字段,更改值并重新编码为json。
如果您的数据在文件中,您可以在使用jsondecode
fid = fopen('filename.json', 'r');
str = fread(fid, '*char').';
fclose(fid);
J = jsondecode(str);
% Change the value
J.Matlab_NX.n1.Geometrieparameter.Breite = 3
如果您使用的是旧版本的MATLAB,JSONlab文件交换提交非常出色,并且还会将您的数据转换为struct
。
值得注意的是,使用这两种方法中的任何一种方法都必须将字段名转换为valid fieldnames,因此可能无法按预期保留空格,超量等。
答案 1 :(得分:0)
从2014b开始,您还可以使用内部函数matlab.internal.webservices.fromJSON()
和matlab.internal.webservices.toJSON()
将JSON字符串转换为Matlab数据结构并返回JSON。
您的示例将会显示为:
obj = matlab.internal.webservices.fromJSON( fileread( 'filename.json'));
obj.Matlab_NX.n1.Geometrieparameter.Breite = 3;
jsonStr = matlab.internal.webservices.toJSON( obj);
% write jsonStr to file if needed