无法在android中将java.lang.String转换为JSONObject
这是一个被问了很多次的问题,但我没有从他们给出的答案中找到任何解决方案 下面是我编写的代码,用于读取原始文件夹中的json文件,以获取我的questions对象下的所有问题,但一直返回该错误。我搜索了一下,但没有找到任何能帮助我解决问题的方法。谢谢你的帮助无法在android中将java.lang.String转换为JSONObject,java,android,json,Java,Android,Json,这是一个被问了很多次的问题,但我没有从他们给出的答案中找到任何解决方案 下面是我编写的代码,用于读取原始文件夹中的json文件,以获取我的questions对象下的所有问题,但一直返回该错误。我搜索了一下,但没有找到任何能帮助我解决问题的方法。谢谢你的帮助 private void IterateQuestions() throws JSONException { obj = (JSONObject) new JSONTokener(loadJSONFromAsset()).n
private void IterateQuestions() throws JSONException {
obj = (JSONObject) new JSONTokener(loadJSONFromAsset()).nextValue();
// obj = new JSONObject(loadJSONFromAsset());
// questionMark = obj.getJSONObject("questions");
Iterator<String> iter = obj.keys();
// String check = questionMark.toString();
// System.out.println("dnt be stubborn "+check + " this is check");
while(iter.hasNext()){
// get the object corresponding to the next key
JSONObject questions= obj.getJSONObject(String.valueOf(iter.next()));
String questions= country.getString("questions");
Log.e("","questions: "+countryName);
System.out.println("this is countryName "+countryName);
}
}
private void IterateQuestions()抛出JSONException{
obj=(JSONObject)新的JSONTokener(loadJSONFromAsset()).nextValue();
//obj=新的JSONObject(loadJSONFromAsset());
//问号=对象getJSONObject(“问题”);
迭代器iter=obj.keys();
//字符串检查=问号.toString();
//System.out.println(“请勿固执”+检查+“这是检查”);
while(iter.hasNext()){
//获取与下一个关键点对应的对象
JSONObject questions=obj.getJSONObject(String.valueOf(iter.next());
字符串问题=country.getString(“问题”);
Log.e(“,”问题:“+countryName”);
System.out.println(“这是countryName”+countryName);
}
}
下面是我的json中的部分代码
{"questions":{"59006": {
"qid": "59006",
"topic": "0",
"instructions": "",
"text": "<p>Y<span>εnya nn</span><span>ɔbae<span>ε kuo yi firi okuafo</span></span><span>ɔ h</span><span>ɔ</span></p>",
"resource": "",
"qtype": "SINGLE",
"confirmed": "1",
"public": "1",
"flagged": "0",
"updated_at": "2014-07-14 12:12:38",
"rating": 0,
"answers": [
{
"id": "254130",
"text": "<p>Gyeene, nkyene, mako</p>",
"value": "0",
"solution": ""
},
{
"id": "254131",
"text": "<p>Mako, bor<span>ɔ</span>de<span>ε, nyaadewa</span></p>",
"value": "1",
"solution": ""
},
{
"id": "254132",
"text": "<p>Nkuruma, abor<span>ɔ</span>b<span>ε, dawuro</span></p>",
"value": "0",
"solution": ""
},
{
"id": "254133",
"text": "<p>Bankye, adua, s<span>ɔs<span>ɔ</span></span></p>",
"value": "0",
"solution": ""
}
]
}
{“问题”:{“59006”:{
“qid”:“59006”,
“主题”:“0”,
“指示”:“,
“正文”:“Y&epsilon;nya nnɔbae&epsilon;kuo yi firi okuafoɔhɔ”,
“资源”:“,
“qtype”:“SINGLE”,
“已确认”:“1”,
“公众”:“1”,
“已标记”:“0”,
更新日期:“2014-07-14 12:12:38”,
“评级”:0,
“答案”:[
{
“id”:“254130”,
“文本”:“Gyene、nkyene、mako”,
“值”:“0”,
“解决方案”:”
},
{
“id”:“254131”,
“正文”:“Mako,borɔde&epsilon;,Nyadewa”,
“值”:“1”,
“解决方案”:”
},
{
“id”:“254132”,
“正文”:“Nkuruma,aborɔb&epsilon;,dauro”,
“值”:“0”,
“解决方案”:”
},
{
“id”:“254133”,
“文本”:“Bankye,adua,sɔsɔ”,
“值”:“0”,
“解决方案”:”
}
]
}
}
}
无法将java.lang.String转换为JSONObject
因为qid、主题、说明,。。。不是JSONObject的,但您正在尝试使用以下行将其转换为JSONObject:
JSONObject questions= obj.getJSONObject(String.valueOf(iter.next()));
您有错误的logcat输出吗?
String.valueOf(iter.next())
String.valueOf部分不是必需的,因为next()
返回一个String
值。“答案”在JSON中是一个JSONArray,您的代码中没有关于JSONObject问题
和字符串问题
的逻辑。。。我认为这行不通。。。检查字符串是否真的应命名为questions
。此代码甚至不应编译,您有两个名为questions的变量,以及未在任何位置声明的变量countryName和country。请在破坏自己之前检查自己…[@SoftServe他的JSON结构不同,因此他的getJSONObject
调用在那里是正确的。@SoftServe如果你不发布你真正使用的代码,这不会有多大帮助。当前的代码不会编译,这不仅仅是因为你省略了一些部分。