Java中的字符串转换为JSONObject

9

这是来自jsonObject的字符串

[
    {
        "No": "1",
        "Name": "ABC"
    },
    {
        "No": "2",
        "Name": "PQR"
    },
    {
        "No": "3",
        "Name": "XYZ"
    }
]

我希望将这个字符串转换为JSONObject,以便在JSONArray中获取这个值。


你使用了哪个库? - sjngm
谷歌可以给你更好的结果。令人惊讶的是,在这种情况下,Google的gson可以帮助你解决问题。 - Rahul
4个回答

16

使用这个:

import org.json.JSONArray;
// ...

String jsonStr = "[{\"No\":\"1\",\"Name\":\"ABC\"},{\"No\":\"2\",\"Name\":\"PQR\"},{\"No\":\"3\",\"Name\":\"XYZ\"}]";

   JSONArray array = new JSONArray(jsonStr); 

    for(int i=0; i<array.length(); i++){
        JSONObject jsonObj  = array.getJSONObject(i);
        System.out.println(jsonObj.getString("No"));
        System.out.println(jsonObj.getString("Name"));
    }

输出:

1
ABC
2
PQR
3
XYZ

JSONArray是从哪个包中导入的? - Prafulla Kumar Sahu
@PrafullaKumarSahu 例如:org.json.JSONArray - Maxim Shoustin
最好将这两个答案添加进去,这样可以更清晰地回答问题。谢谢。 - Prafulla Kumar Sahu

13

使用谷歌的 JSON 库(google-gson):

JsonParser jsonParser = new JsonParser();
JsonElement element = jsonParser.parse(your json string);

2

我假设您的输入字符串是str,

 String str = {"xyz":[{"name":"apple","email_id":"apple@apple.com"}]}

 JSONObject json = JSONObject.fromObject(str);

 JSONArray jarr = json.getJSONArray("xyz");

可以将根字符串输入作为替换xyz的值传递。

这应该可以工作。


3
请添加此JSONObject的包名,因为它不是来自于org.json.simple.JSONObject - Idemax

2

您可以使用GSON将JSON字符串解析为Java对象,反之亦然。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接