我如何使用gson库解析JSONObject

时间:2019-05-08 12:41:13

标签: java json

我正在使用maven依赖项将JsonObject解析为gson library 但是我没有包含键和值的地图。

我尝试了keyset方法,但找不到与值的对应关系(空指针异常错误),JSONArray字段代表了我想要获取的数组,但currentJsonObject.get("fields") 返回我无法解析以获取其他键值的object。 这是对象的结果,我从get("fields")

返回的对象中得到了它

总而言之,我想解析此数组中的JSONArray fieldsretrieve值键

 JsonReader jsonReader = new JsonReader(new InputStreamReader(new FileInputStream("filename"), StandardCharsets.UTF_8));
    jsonReader.beginArray();
    Gson gson = new GsonBuilder().create();
    Collection<String> list ;
    Collection<String> keys ;
    BasicDBObject map = new BasicDBObject();

    while (jsonReader.hasNext()) {
        JSONObject currentJsonObject = gson.fromJson(jsonReader, 
    JSONObject.class);
        System.out.println(currentJsonObject.get("fields"));

        }
    jsonReader.close();

Json :   

1 个答案:

答案 0 :(得分:0)

以下代码可能会帮助您:

public String parse(String jsonLine) {
    JsonElement jelement = new JsonParser().parse(jsonLine);
    JsonObject  jobject = jelement.getAsJsonObject();
    jobject = jobject.getAsJsonObject("data");
    JsonArray jarray = jobject.getAsJsonArray("translations");
    jobject = jarray.get(0).getAsJsonObject();
    String result = jobject.get("translatedText").getAsString();
    return result;
}