如何从JsonObject Java恢复值

时间:2019-02-21 19:21:13

标签: java json intellij-idea

我有一个JSonObject列表,我只想恢复json中的tow变量的值。

在Java 8中我找不到函数getJSONObject,可能是无法识别。 首先,我将json添加到# load json and create model json_file = open('model.json', 'r') loaded_model_json = json_file.read() json_file.close() loaded_model = model_from_json(loaded_model_json) # load weights into new model loaded_model.load_weights("model_best_weights.h5") print("Loaded model from disk") # evaluate loaded model on test data loaded_model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy']) score = loaded_model.evaluate(X, Y, verbose=0) 的列表中。但是,当我想要获取它时,编辑器JSONObject仅提出函数get。

示例:Intellij我得到了下面的结果,但是当我想要像records.get(0).get("id")那样恢复内部变量时,我得到了一个错误。

records.get(0).get("id").get("875488")...

我试图恢复My code: JSONArray JSONArray = (JSONArray) obj; List<JSONObject> records = new ArrayList<JSONObject>(); for (int i=0; i<JSONArray.size(); i++) { records.add( (JSONObject) JSONArray.get(i) ); } "lat"的第一个拖曳值,但我无法到达。 有人可以帮我吗?

我想要作为结果

"lon"

谢谢。

1 个答案:

答案 0 :(得分:4)

首先,对于JAVA-json,正确的Maven / Gradle依赖关系是

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20180813</version>
</dependency>

如果找不到方法JSONObject#getJSONObject,则说明您做错了。


对于代码部分,应该这样做。适应您的必需品。

final JSONArray jsonArray = new JSONArray(source);
final int length = jsonArray.length();

for (int i = 0; i < length; i++) {
    final JSONObject jsonObject = jsonArray.getJSONObject(i);
    final JSONObject forecastOrig =
            jsonObject.getJSONObject("875488")
                      .getJSONObject("forecast_orig");

    final double lon = forecastOrig.getDouble("lon");
    final double lat = forecastOrig.getDouble("lat");

    System.out.println(lon);
    System.out.println(lat);
}