一尘不染

从嵌套的JSON对象中检索值

json

我有要解析的JSON文件。JSON文件(“ myfile”)的格式如下:

{
    "LanguageLevels": {
        "1": "Początkujący",
        "2": "ŚrednioZaawansowany",
        "3": "Zaawansowany",
        "4": "Ekspert"
    }
}

我想从语言级别检索键2的值(ŚrednioZaawansowany)。

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class JsonSimpleExample {
public static void main(String[] args) {

JSONParser parser = new JSONParser();

try {

    Object obj = parser.parse(new FileReader("myfile"); 
    JSONObject jsonObject = (JSONObject) obj;
    JSONObject jsonChildObject = (JSONObject)jsonObject.get("LanguageLevels");

接下来做什么?我如何迭代呢?


阅读 263

收藏
2020-07-27

共1个答案

一尘不染

也许您没有使用Java库的最新版本的JSON。

json-simple已有很长时间没有更新,而JSON-Java2个月前已更新。

JSON- Java可以在GitHub上找到,这是其仓库的链接:https : //github.com/douglascrockford/JSON-
java

切换库后,您可以在下面参考我的示例代码:

public static void main(String[] args) {
    String JSON = "{\"LanguageLevels\":{\"1\":\"Pocz\\u0105tkuj\\u0105cy\",\"2\":\"\\u015arednioZaawansowany\",\"3\":\"Zaawansowany\",\"4\":\"Ekspert\"}}\n";

    JSONObject jsonObject = new JSONObject(JSON);
    JSONObject getSth = jsonObject.getJSONObject("LanguageLevels");
    Object level = getSth.get("2");

    System.out.println(level);
}

并且作为JSON-Java开放源代码,您可以阅读代码及其文档,它们将指导您完成操作。

希望对您有所帮助。

2020-07-27