Java 在Android中解析JSON文件时出错
我正在开发一个Android应用程序,它通过Java 在Android中解析JSON文件时出错,java,android,json,arrays,jsonobject,Java,Android,Json,Arrays,Jsonobject,我正在开发一个Android应用程序,它通过httpget从服务器获取数据,并以字符串形式存储响应(JSON格式)。我想解析字符串并获取JSONArray中的值 接收到的存储在字符串中的JSON为: {"code":1,"data":{"survey":{"id":null,"questionAnswers":[{"id":null,"min":"1","max":"5","step":"0.1","last":"4.7","text":"I am happy at work today","k
httpget
从服务器获取数据,并以字符串形式存储响应(JSON
格式)。我想解析字符串并获取JSONArray
中的值
接收到的存储在字符串中的JSON为:
{"code":1,"data":{"survey":{"id":null,"questionAnswers":[{"id":null,"min":"1","max":"5","step":"0.1","last":"4.7","text":"I am happy at work today","key":"Mood","testQuestionId":"1","datetime":"2014-04-29 15:47:02","answer":"4.7","testAnswerId":null}]}}
我想解析JSON数组“questionAnswers”
,并检索“answer”
中的值,该值位于JSONObject
中
我使用的代码如下:
JSONObject jsonObj_survey = new JSONObject(Get_MySurvey_JSON);
JSONObject jsondata_survey = jsonObj_survey.getJSONObject("data");
JSONArray jsonArray_questionAnswer = jsondata_survey
.getJSONArray("questionAnswers");
for (int i = 0; i < jsonArray_questionAnswer.length(); i++) {
JSONObject questionAnswer = jsonArray_questionAnswer
.getJSONObject(i);
my_Company_survey_rating[i] = questionAnswer.getString("answer");
// userdata.setMy_Company_Top_key_1(my_Company_Top_key[1]);
Log.d("Rating", my_Company_survey_rating[i]);
}
请尝试以下代码-
JSONObject jsonObj_survey = new JSONObject(Get_MySurvey_JSON);
JSONObject jsondata_survey = jsonObj_survey.getJSONObject("data");
JSONObject jsondata_surveyvalue = jsonObj_survey.getJSONObject("survey");
JSONArray jsonArray_questionAnswer = jsondata_surveyvalue
.getJSONArray("questionAnswers");
for (int i = 0; i < jsonArray_questionAnswer.length(); i++) {
JSONObject questionAnswer = jsonArray_questionAnswer
.getJSONObject(i);
my_Company_survey_rating[i] = questionAnswer.getString("answer");
// userdata.setMy_Company_Top_key_1(my_Company_Top_key[1]);
Log.d("Rating", my_Company_survey_rating[i]);
}
JSONObject jsonObj_survey=newjsonobject(Get_MySurvey_JSON);
JSONObject jsondata_survey=jsonObj_survey.getJSONObject(“数据”);
JSONObject jsondata_surveyvalue=jsonObj_survey.getJSONObject(“survey”);
JSONArray JSONArray_问题答案=jsondata_调查值
.getJSONArray(“问题答案”);
for(int i=0;i
希望这段代码能帮助你!!
如果它不起作用,请让我知道我会尽力帮助更多
您正试图从
用“数据”代替“调查”
把你的json放在这里,它显示无效的json。json中的大括号不匹配。你有4个大括号打开,只有3个小括号关闭。你能试着修复它并重新尝试你的代码吗?您可以参考相同的代码来解析json到对象…谢谢阿尔奇。成功了。我从服务器收到的文件也有一部分是空的。修复仍然有效。
JSONObject jsonObj_survey = new JSONObject(Get_MySurvey_JSON);
JSONObject jsondata_survey = jsonObj_survey.getJSONObject("data");
JSONObject jsondata_surveyvalue = jsonObj_survey.getJSONObject("survey");
JSONArray jsonArray_questionAnswer = jsondata_surveyvalue
.getJSONArray("questionAnswers");
for (int i = 0; i < jsonArray_questionAnswer.length(); i++) {
JSONObject questionAnswer = jsonArray_questionAnswer
.getJSONObject(i);
my_Company_survey_rating[i] = questionAnswer.getString("answer");
// userdata.setMy_Company_Top_key_1(my_Company_Top_key[1]);
Log.d("Rating", my_Company_survey_rating[i]);
}
String yourJSONString = "{"code":1,"data":{"survey":{"id":null,"questionAnswers":[{"id":null,"min":"1","max":"5","step":"0.1","last":"4.7","text":"I am happy at work today","key":"Mood","testQuestionId":"1","datetime":"2014-04-29 15:47:02","answer":"4.7","testAnswerId":null}]}}}";
JSONObject jObj_main = new JSONObject(yourJSONString);
JSONObject jOb_data = jObj_main.getJSONObject("data");
JSONObject jOb_survey = jOb_data.getJSONObject("survey");
JSONArray jArray_questionAnswers = jOb_survey.getJSONArray("questionAnswers");