Java 如何将json对象转换为字符串?堆栈溢出中的引用代码对我不起作用。你对此有什么有价值的想法吗
我将在这里分享我的代码 请帮我做这个。 提前谢谢Java 如何将json对象转换为字符串?堆栈溢出中的引用代码对我不起作用。你对此有什么有价值的想法吗,java,json,Java,Json,我将在这里分享我的代码 请帮我做这个。 提前谢谢 { "statusCode": "1001", "message": "Success", "response": { "holidays": [{ "holidayId": 78, "year": 2015, "date": "2015-01-01", "
{
"statusCode": "1001",
"message": "Success",
"response": {
"holidays": [{
"holidayId": 78,
"year": 2015,
"date": "2015-01-01",
"day": "Thrusday",
"occasion": "New Year Day"
},
{
"holidayId": 79,
"year": 2015,
"date": "2015-01-15",
"day": "Thrusday",
"occasion": "Pongal/Sankranthi"
},
{
"holidayId": 80,
"year": 2015,
"date": "2015-01-26",
"day": "Monday",
"occasion": "Republic Day"
}
],
"year": 0
}
}
这是我从响应中获取数据的方式:
JSONObject jobj = new JSONObject(result);
String statusCode = jobj.getString("statusCode");
if (statusCode.equalsIgnoreCase("1001"))
{
System.out.println("SUCCESS!");
String response = jobj.getString("response"); // got the error - Exception in thread "main" org.json.JSONException: JSONObject["response"] not a string.
//at org.json.JSONObject.getString(JSONObject.java:639)
//at packagehappierWork.example2.main(example2.java:21)
Object obj = new JSONObject(response);
JSONArray holidays = ((JSONObject) obj).getJSONArray("holidays");
我已从stackoverflow获得引用,但返回错误。
String response=jobj.getString(“response”)代码>您的响应不是值节点,而是对象节点。因此,您应该调用JsonObject responseObject=jobj.getJsonObject(“response”)代码>这是因为您试图将响应提取为字符串,而实际上它是一个对象。您需要调用getJSONObject
,然后调用toString
,以获取响应的字符串表示形式,例如:
JSONObject jsonObject = new JSONObject("{\n" +
"\"statusCode\": \"1001\",\n" +
"\"message\": \"Success\",\n" +
"\"response\": {\n" +
" \"holidays\": [{\n" +
" \"holidayId\": 78,\n" +
" \"year\": 2015,\n" +
" \"date\": \"2015-01-01\",\n" +
" \"day\": \"Thrusday\",\n" +
" \"occasion\": \"New Year Day\"\n" +
" },\n" +
" {\n" +
" \"holidayId\": 79,\n" +
" \"year\": 2015,\n" +
" \"date\": \"2015-01-15\",\n" +
" \"day\": \"Thrusday\",\n" +
" \"occasion\": \"Pongal/Sankranthi\"\n" +
" },\n" +
" {\n" +
" \"holidayId\": 80,\n" +
" \"year\": 2015,\n" +
" \"date\": \"2015-01-26\",\n" +
" \"day\": \"Monday\",\n" +
" \"occasion\": \"Republic Day\"\n" +
" }\n" +
" ],\n" +
" \"year\": 0\n" +
" }" +
"}");
String statusCode = jsonObject.getString("statusCode");
if(statusCode.equalsIgnoreCase("1001")){
JSONObject response = jsonObject.getJSONObject("response");
System.out.println(response.toString());
}
什么不起作用?错误是什么?@可选我假设:org.json.JSONException:JSONObject[“response”]不是字符串。