替换JSONObject中的JSONObject

时间:2015-02-10 12:36:25

标签: java json insert jsonobject

private JSONObject insertJSONintoJSON(JSONObject newJSON, JSONObject parent)
{
    Object[] a = parent.values().toArray();
    JSONObject jsonObject2 = (JSONObject) a[1];
    Object[] b = jsonObject2.values().toArray();
    JSONObject folders = (JSONObject) b[2];

    Object[] c = folders.values().toArray();
    JSONArray folderss = (JSONArray) c[2];

    for (Object objc : folderss)
    {
        JSONObject tmp = (JSONObject) objc;
        Object[] d = tmp.values().toArray();
        String name = (String) d[4];

        if (name.toUpperCase().equals("EXCHANGE"))
        {
            tmp = newJSON;
            return parent;
        }
    }

    return parent;
}

嗨,我想让new Value(newJSON)的父母回复,但是父母没有,tmp没有更改价值。

1 个答案:

答案 0 :(得分:1)

您可以尝试将其作为String处理,只需将新对象插入父对象中即可。

    private static JSONObject insertObj(JSONObject parent, JSONObject child){
    String parentStr = parent.toString();
    parentStr = parentStr.substring(1);//remove the opening curly bracket {
    String childStr = child.toString();
    childStr = childStr.substring(0, (childStr.length()-1));
    parentStr = childStr+","+parentStr;
    JSONObject resultObj = new JSONObject(parentStr);
    return resultObj;
}

只有在添加子对象之前已经在父级中至少有一个键(因为我们添加了一个逗号),这才会起作用,但是你可以处理 那个简单的IF

编辑: 实际上更好的方法是

JSONObject parent = new JSONObject();
JSONObject child = new JSONObject();
parent.put("object name",child);