3つの入力があります。Java:ネストされたjsonオブジェクトにキー値のペアを追加します。
A JSONオブジェクト(ネスト)
ノード構造
- キー値ペア
マイタスクを見ることによってノードにキー値ペアを追加することですオリジナルのJSONを更新します。例えば
、入力がある場合、
JSONオブジェクト
{ a: { b: { c:{} } } }
ノード構造
a.b.
キー最終更新JSONは
{ a: { b: { key:val c:{} } } }
のようになります。と値
v
は、元のJSONも{}
することができますのでご注意ください。次に、ノード構造を見てJSON全体を構築する必要があります。ここで
私のコードは
あるJSON
public void modifiedJSON(JSONObject orgJson, String nodeStruct, JSONObject ev) throws JSONException{ JSONObject newJson = new JSONObject(); JSONObject copyJson = newJson; char last = nodeStruct.charAt(nodeStruct.length()-1); String lastNode = String.valueOf(last); int i = 0; while(orgJson.length() != 0 || i< nodeStruct.length()){ if(orgJson.length() ==0){ if(nodeStruct.charAt(i) == last){ newJson.put(String.valueOf(last), ev.toString()); }else{ newJson.put(String.valueOf(nodeStruct.charAt(i)), ""); } newJson = newJson.getJSONObject(String.valueOf(nodeStruct.charAt(i))); } else if(i >= nodeStruct.length()){ if(orgJson.has(lastNode)){ newJson.put(String.valueOf(last), ev.toString()); }else{ } } } }
への追記
public JSONObject makeEV(String ele, String val) throws JSONException{ JSONObject json =new JSONObject(); json.put(ele, val); return json; }
キーと値のペアを作り、私はここで立ち往生しています。助けてください。前もって感謝します。
あなたのノード構造ではなく 'a.b.key'あるべきではないでしょうか? –
ええ。それも大丈夫です –