编辑JSON字段

时间:2013-03-11 08:59:38

标签: java android json

我有来自服务器的JSON,如下所示

   {
    "XXXX": {
        "type": "RSS",
        "value": ""
    },
    "YYYY": {
        "type": "String",
        "value": ""
    },
    "ZZZZ": {
        "type": "String",
        "value": ""
    }
}

现在我需要在所有XXXX,YYYY和ZZZZ的字段中添加String值。

我正在使用eclipse,我需要更改XXXX和YYYY以及ZZZZ中“value”的值,我需要添加字段

{
    "MMMM": {
        "type": "Image",
        "value": "a7e8bec0-87ed-11e2-aa2e-52540025ab96_2_1362746556"
    }
}

ZZZZ之后。请让我知道怎么做。

6 个答案:

答案 0 :(得分:5)

试试这个

String jsonstring="{
    "XXXX": {
        "type": "RSS",
        "value": ""
    },
    "YYYY": {
        "type": "String",
        "value": ""
    },
    "ZZZZ": {
        "type": "String",
        "value": ""
    }
}";

JSONObject object=new JSONObject(jsonstring);
JSONObject childobject=object.getJSONObject("XXXX");

JSONObject modifiedjson=new JSONObject();
modifiedjson.put("type",childobject.get("type"));
modifiedjson.put("value","newvalue");  // Add new value of XXXX here

//

JSONObject mmjson=new JSONObject();
mmjson.put("type","image");
mmjson.put("value","a7e8bec0-87ed-11e2-aa2e-52540025ab96_2_1362746556");  // Add new value of MMM here

JSONObject newjson=new JSONObject();
newjson.put("MMMM",mmjson.toString());
newjson.put("XXXX",modifiedjson.toString());
newjson.put("YYYY",object.get("YYYY"));
newjson.put("ZZZZ",object.get("ZZZZ"));

答案 1 :(得分:3)

我认为你的意思是

{"XXXX":
{"type":"RSS","value":"},
"YYYY (mins)":{"type":"String","value":""},
"ZZZZ":{"type":"String","value":""}

是您从服务器获得的JSON。您始终可以获取JSONObject.toString并根据需要进行编辑,然后执行类似的操作,

JSONObject obj = new JSONObject(myString);

如果您需要为JSON添加键值,可以尝试,

JSONObject value = new JSONObject();
value.put("key","value");
value.put("key","value");//add all the field you want for ZZZZ.
obj.put("ZZZZ",value);

答案 2 :(得分:0)

如果是字符串,您只需搜索指定的值并连接新字符串。

如果它是JSON对象,您可以将新值添加到JSON对象并搜索要操作的值并将其设置为新值。

你现在在做什么?你能告诉我们一些代码,所以我们知道你究竟在哪里遇到问题?并且,请显示您如何访问此代码中的JSON。

答案 3 :(得分:0)

用于替换字符串的用户Java字符串替换方法。

将Json作为字符串,然后通过字符串替换方法替换值。

这是一个小例子。

String replaceSample = "This String replace Example shows how to replace one char from 

String newString = replaceSample.replace('r', 't');

感谢。

答案 4 :(得分:0)

 var source={
                "XXXX": {
                    "type": "RSS",
                    "value": ""
                },
                "YYYY": {
                    "type": "String",
                    "value": ""
                },
                "ZZZZ": {
                    "type": "String",
                    "value": ""
                }
            }

您要添加的元素

 var element={
        "type": "Image",
        "value": "a7e8bec0-87ed-11e2-aa2e-52540025ab96_2_1362746556"
    };

您可以使用以下脚本

source["MMMM"]=element;

source.MMMM=element;

答案 5 :(得分:0)

您可以使用JavaScript本身执行所有操作。

让我们将来自服务器的日期存储到变量a

var a = {
    "XXXX":{"type":"RSS","value":"},
    "YYYY (mins)":{"type":"String","value":""},
    "ZZZZ":{"type":"String","value":""}
}

更改值:

a['XXXX']['value'] = 'new_value1';
a['YYYY']['value'] = 'new_value2';
a['ZZZZ']['value'] = 'new_value3';

添加字段:

a["MMMM"] = {"type":"Image","value":"a7e8bec0-87ed-11e2-aa2e-52540025ab96_2_1362746556"}}