从带有或不带有JSONObject的json字符串中提取数据

时间:2019-02-14 22:08:29

标签: java json

我在Java字符串中存储了以下json代码:

String str = {"posts":[{"key":"key1","value":"x"},{"key":"key2","value":"0"},{"key":"key3","value":"y"}]}

是否有一种方法可以使用JSONObject从字符串中提取值,还是应该使用旧的方法:

 String[] parts = str.split("\"");

在我的情况下,值存储在数组中的位置parts[9]parts[17]parts[25]中。   到目前为止,它运行良好,但是我想知道是否可以使用JSONObject完成该任务?

2 个答案:

答案 0 :(得分:0)

如果使用Java,请使用google提供的Gson库

https://github.com/google/gson

在这里您可以将Java转换为Json,然后将Json无缝转换回Java对象。

答案 1 :(得分:0)

使用JSONObject(来自org.json包,JSON-java),您可以轻松提取值。

final JSONObject jsonObject = new JSONObject(str);
final JSONArray posts = jsonObject.getJSONArray("posts");
final Collection<String> values = new ArrayList<>(posts.length());

for (int i = 0; i < posts.length(); i++) {
    final JSONObject post = posts.getJSONObject(i);
    values.add(post.getString("value"));
}

// values = [x, 0, y]

我会绝对避免任何形式的手动String操作。