我有一个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"
谢谢。
答案 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);
}