Android 解析多维json数组
我在解析JSON时遇到了一些问题,我被困在一个特定的情况下。 我试图获取JSON数组“details”下的所有值,但它给了我一个错误,即JSONObject无法转换为JSONArrayAndroid 解析多维json数组,android,json,Android,Json,我在解析JSON时遇到了一些问题,我被困在一个特定的情况下。 我试图获取JSON数组“details”下的所有值,但它给了我一个错误,即JSONObject无法转换为JSONArray { "response": "true", "errors": "<span>Success</span>", "details": { "sid": "15", "pid": "1", "user_email": "chardalvarez@gmail.com",
{
"response": "true",
"errors": "<span>Success</span>",
"details": {
"sid": "15",
"pid": "1",
"user_email": "chardalvarez@gmail.com",
{
“响应”:“正确”,
“错误”:“成功”,
“详情”:{
“sid”:“15”,
“pid”:“1”,
“用户电子邮件”:chardalvarez@gmail.com",
以下是我已经做过的:
String json = mParser.makeHttpRequest(API_REGISTER, "POST", params);
Log.d("Registration Return: ", json);
try {
JSONObject jObj = new JSONObject(json);
if (jObj != null) {
mDetails = jObj.getJSONArray("details");
if (mDetails != null) {
for (int i = 0; i < mDetails.length(); i++) {
JSONObject c = mDetails.getJSONObject(i);
mPid = c.getString("sid");
mSid = c.getString("pid");
mUserEmail = c.getString("user_email");
String json=mParser.makeHttpRequest(API_寄存器,“POST”,参数);
Log.d(“注册返回:”,json);
试试{
JSONObject jObj=新的JSONObject(json);
if(jObj!=null){
mDetails=jObj.getJSONArray(“细节”);
if(mDetails!=null){
对于(int i=0;i
但我还是得到了同样的错误。我的代码是否有错?我也检查了我的JSON,认为它是无效的JSON,但它显示的是有效的JSON。非常感谢您的帮助。您的JSON是有效的,但
详细信息
是一个JSON对象
,而不是JSON数组
您正在详细使用一个花括号
,这意味着它是一个对象
{
"response": "true",
"errors": "<span>Success</span>",
"details": {
"sid": "15",
"pid": "1",
"user_email": "chardalvarez@gmail.com",
编辑:看看你的代码,如果细节是一个对象,而不是一个数组,似乎会更有用
(另外,如果您有一个数组,根据您的语法,这些值将仅存储为字符串值,而不是json键值对)
所以从
mDetails = jObj.getJSONArray("details");
到
details
是JSONObject而不是JSONArray,所以使用jObj.getJSONObject(“details”)
为了获得gaurav5430建议的JSONObject的详细信息,我在提问之前确实尝试过,但不知怎的,我遇到了同样的问题,但这次是相反的!它说JSON对象无法转换为JSON数组!所以我所做的是删除手机上的应用程序并清理我的项目,然后再试一次,真是幸运!谢谢感谢各位在这件事上帮助我。感谢gaurav5430和Ajay Thakur抽出时间来关注我的问题:)
mDetails = jObj.getJSONArray("details");
mDetails = jObj.getJSONObject("details");
String json = mParser.makeHttpRequest(API_REGISTER, "POST", params);
Log.d("Registration Return: ", json);
try {
JSONObject jObj = new JSONObject(json);
if (jObj != null) {
mDetails = jObj.getJSONObject"details");
if (mDetails != null) {
String sid= mDetails.getString("sid");
String pid = mDetails.getString("pid");
String mUserEmail = mDetails.getString("user_email");