Android 解析多维json数组

Android 解析多维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",

我在解析JSON时遇到了一些问题,我被困在一个特定的情况下。 我试图获取JSON数组“details”下的所有值,但它给了我一个错误,即JSONObject无法转换为JSONArray

{
"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");