0

我有一个来自服务器的 JSON 如下

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

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

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

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

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

4

6 回答 6

6

尝试这个

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"));
于 2013-03-11T09:28:08.137 回答
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);
于 2013-03-11T09:09:23.803 回答
0

如果它是一个字符串,你可以只搜索指定的值并连接新的字符串。

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

你此刻在做什么?你能给我们看一些代码,让我们知道,你到底哪里有问题?请展示您如何在此代码中访问 JSON。

于 2013-03-11T09:03:38.030 回答
0

用户 Java 字符串替换方法来替换字符串。

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

这是一个小例子。

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

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

谢谢。

于 2013-03-11T09:07:06.517 回答
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;
于 2013-03-11T09:07:49.133 回答
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"}}
于 2013-03-11T09:08:19.697 回答