简体   繁体   中英

double quote in json simple

I want this outcome:

{"link":[{"url":"http://en.wikipedia.org/wiki/JScript", "label":"wikipedia"}]}

I tried this:

JSONObject ob1 = new JSONObject();
ob1.put("link","[{\"url\":\"http://en.wikipedia.org/wiki/JavaScript\", label:\"wikipedia\"}]");

The output of ob1.toJSONString() is:

{"link":"[{\"url\":\"http:\/\/en.wikipedia.org\/wiki\/JavaScript\", label:\"wikipedia\"}]"}

What am I doing wrongly? I am using json-simple-1.1.1

You should put a JSONArray into the JSONObject and in the Array again a JSONObject with the keys/values "url"/"http://en.wikipedia.org/wiki/JScript" and "label"/"wikipedia"

JSONObject ob1 = new JSONObject();
JSONArray ar1 = new JSONArray();
ob1.put ("link", ar1);

JSONObject ob2 = new JSONObject();
ar1.add(ob2);

ob2.put("url", "http://en.wikipedia.org/wiki/JScript");
ob2.put("label", "wikipedia");

In case you have the value of ob1 link object already as JSON string then you can first interpret this into a JSONArray using

JSONArray ar1 = (JSONArray)JSONValue.parse(yourJSONStr);

NOTE: Your intended result is not a JSON string, because for that all "/" must be escaped "\\/"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM