【发布时间】:2016-10-06 11:53:56
【问题描述】:
我得到了三个输入。
一个 JSON 对象(嵌套)
一个节点结构
- 键值对
我的任务是通过查看节点结构并更新原始 JSON 将键值对附加到节点。
例如,如果输入是,
-
JSON 对象
{ a: { b: { c:{} } } } -
节点结构
a.b. 键
k和值v
最终更新的 JSON 应该是这样的
{
a:
{
b:
{
key:val
c:{}
}
}
}
请注意,原始 JSON 也可以是
{}。然后我必须通过查看节点结构来构建整个 JSON。
这是我的代码
-
制作键值对
public JSONObject makeEV(String ele, String val) throws JSONException{ JSONObject json =new JSONObject(); json.put(ele, val); return 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{ } } } }我被困在这里。请帮忙。提前致谢。
【问题讨论】:
-
你的节点结构应该是
a.b.key,不是吗? -
是的。那也很好