所以我写了一个连接到API端点的程序,它给了我一个字典,其中包含一个日期和添加到该日期的秒数:
[ “{\” 邮戳\ “:\” 2016-11-22T20:46:38Z \ “\ ”间隔\“:209836}”]
我想将这些秒添加到日期并将其返回到API。字典中的getDate()工作正常但我的getSeconds()抛出了
JSONException:JSONObject [“{\”datestamp \“:\”2016-11-22T20:46:38Z \“,\”interval \“:209836}”]未找到。< / p>
这是我的getSeconds():
private static String getSeconds(String retrievedJson) throws JSONException, IOException {
JSONObject jsonTime = new JSONObject(retrievedJson);
String interval = jsonTime.getString("interval"); <-- if I do it this way I get this exception org.json.JSONException: JSONObject["interval"] not a string.
String interval = jsonTime.getJSONObject(retrievedJson).getString("interval"); <--- and if I do it this way it get the JSONException: JSONObject not found exception
return interval;
}
以下是我如何称呼它。
public void request() throws JSONException, IOException {
String retrievedJson = receiveInfo();
if (retrievedJson != null){
String finalTime = getFinalTime(retrievedJson);
sendNewDateBack(finalTime);
}
这是我的getFinalTime():
private static String getFinalTime(String retrievedJson) throws JSONException, IOException {
String gotDateStamp = getDate(retrievedJson);
String gotInterval = getSeconds(retrievedJson);
String finalTime = addSecondsToDate(gotDateStamp, gotInterval);
return finalTime;
}
我整天都在处理这个异常,似乎无法弄明白。
答案 0 :(得分:0)
在这里,你去:
package com.so;
import org.json.JSONException;
import org.json.JSONObject;
public class JsonParsing {
/**
* @param args
* @throws JSONException
*/
public static void main(String[] args) throws JSONException {
String retrievedJson= "{\"datestamp\":\"2016-11-22T20:46:38Z\",\"interval\":209836}";
JSONObject jsonTime = new JSONObject(retrievedJson);
Long interval = jsonTime.getLong("interval");
System.out.println("Main Json Data : " + interval);
String retrievedJson2 = "{\"datestamp\":\"2016-11-22T20:46:38Z\",\"interval\":209836,inner:{\"datestamp\":\"2016-11-22T20:46:38Z\",\"interval\":209837}}";
JSONObject jsonTime2 = new JSONObject(retrievedJson2);
String interval2 = jsonTime2.getJSONObject("inner").getString("interval");
System.out.println("Inner Json Data : "+ interval2);
//String interval1 = jsonTime. //<--- and if I do it this way it get the JSONException: JSONObject not found exception
}
}
注意:强>
getJSONObject
方法返回一个内部Json对象。在您的情况下,interval
只是一个Long
变量而不是Json对象。我已经使用嵌套的Json创建了一个示例Json对象,并演示了getJSONObject
的使用。
我希望,它会给你一些见解。