如何使用JAVA从此JSON数据中获取名称

时间:2017-10-17 08:45:59

标签: java android json

[
  {
    "orderDetails": [
        {
            "account_name": "akhil_kotak",
        }
     ]
  }
]

如何从这个json获取帐户名称,我试着这样做

String response = new String(responseBody);
                    //ON SUCCESS GETS JSON Object
                    JSONArray array = new JSONArray(response);
                    JSONObject obj = 
array.getJSONObject(0).getJSONArray("orderDetails").getJSONObject(0);

                    txt_accountName.setText(obj.getString("account_name"));

如果有人可以提供帮助,那就太棒了。

由于

4 个答案:

答案 0 :(得分:0)

您的JSON无效。

您可以更改为此。

[
  {
    "orderDetails": [
        {
            "account_name": "akhil_kotak"
        }
     ]
  }
]

只需将"account_name": "akhil_kotak" ,更改为"account_name": "akhil_kotak"

只需删除JSON

中的逗号即可

试试这个。

try {
        JSONArray jsonArray = new JSONArray(response);
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            JSONArray orderDetails = jsonObject.getJSONArray("orderDetails");
            for (int j = 0; j < orderDetails.length(); j++) {
                JSONObject jsonObject2 = orderDetails.getJSONObject(j);
                String account_name = jsonObject2.getString("account_name");
                txt_accountName.setText(account_name);
            }
        }
} catch (JSONException e) {
        e.printStackTrace();
}

答案 1 :(得分:0)

试试这个。我正在使用 org.json.simple 库。

  String str="[{\"orderDetails\": [{\"account_name\": \"akhil_kotak\",}]}]";
            JSONParser parser=new JSONParser();
            JSONArray array=(JSONArray) parser.parse(str);
            JSONObject obj=(JSONObject) array.get(0);
            JSONArray nestedArray=(JSONArray) obj.get("orderDetails");
            System.out.println("output: "+nestedArray.get(0).get("account_name"));

它工作正常。

答案 2 :(得分:0)

您的JSON无效。 删除逗号!然后:

创建一组calsses并使用Gson!

将此行添加到build.gradle中的依赖项:

//Home component.ts
import { Events } from 'ionic-angular';  
constructor(public events: Events) {
     directioChange(user) {
            this.events.publish('directiochanged', 'true');
     }
} 


//AngularTreeComponent
constructor(public events: Events) { 
       events.subscribe('directiochanged', (direction) => { 
             //Do your Tree view display Action in this receiver
       });
 }

创建一组类:

dependencies {
    compile 'com.google.code.gson:gson:2.8.2' //add this line
}

并像这样使用它们:

class SomeListItem {
    @SerializedName("orderDetails")
    public List<InnerListItem> mOrderDetails;
}

class InnerListItem {
    @SerializedName("account_name")
    public String mAccountName;
}

答案 3 :(得分:0)

如果您使用的是Jackson 2 ..以下作品

String jsonString =&#34; [{\&#34; orderDetails \&#34;:[{\&#34; account_name \&#34;:\&#34; akhil_kotak \&#34;, }]}]&#34 ;;

const One = new Schema({
  name: String
})

const Two = new Schema({
  code: String,
  name: {
    type: Schema.ObjectId,
    ref: 'One'
  }
})

const Three = new Schema({
  phone: number
  code: [{
    type: Schema.ObjectId,
    ref: 'Two'
  }]
})


Three.find((err, three) => {
  if (err) console.log(err)
  console.log(three)  
  // => {
  //      phone : "the phone number from schema Three",
  //      code: {
  //        code: "the code from schema Two",
  //        name: "the name from schema One"
  //      }
  //    }
})
.populate('code.name')