2017-02-09 6 views
1
{ 
    "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 

コード:私は、ファイルに更新されたパラメータ(Breite)を交換したかった読書JSONオブジェクト

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); 

。ガイダンスが必要です。

答えて

1

R2016b以降を使用している場合は、jsondecodeを使用してJSONデータをstructに変換できます。 jsonencodeを使用して、必要なフィールドを変更して値を変更し、jsonとして再エンコードすることができます。

データがファイル内にある場合は、MATLAB、JSONlabファイル交換提出の古いバージョンを使用している場合は、前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 

でデコードする文字列としてでファイルの内容を読み取ることができます非常に優れており、データをstructに変換します。

これらの方法のいずれかでフィールド名をvalid fieldnamesに変換する必要がありますので、スペースやハイフンなどが期待どおりに保存されないことがあります。

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 
関連する問題