![](/img/trans.png)
[英]java+json: how to get an element from a json object that contains an array of objects {[ {},{} ]}
[英]How to get JSON data that contains JSON Object and array both
*我已经从responce.body()获取此JSON对象。 我想把它里面的每个数据分别变量。 我正在使用java。
{
"Classes":{
"Primary":{
"Classes":{
"1":{
"section":[
"a",
"b"
]
},
"2":{
"sections":[
"a",
"b"
]
}
}
}
}
}
*我知道如何获取JSONObject但我不知道如何在“section”中获取该数组。 即使我用JSONArray获取该数组,那么如何将其转换为JSONObject? 或字符串。
*注意“section”数组的内部值是动态的,该数组内的值是动态的,可以是从“a”到“z”的多重数组。 “Classes”(主要内部)中的JSONObject也是动态的。 可以有动态和多个“1”,“2”......它是字符串,没有必要增加数字。
经过30分钟的战争 ,我找到你的答案只需复制这段代码并粘贴你想要使用的地方 -
这里是 -
String json = "{
"Classes": {
"Primary": {
"Classes": {
"1": {
"section": [
"a",
"b"
]
},
"2": {
"sections": [
"a",
"b"
]
}
}
}
}
}";
try {
JSONObject jsonObject = new JSONObject(json);
Log.d("jsonObj", jsonObject.toString());
JSONObject classJsonObj = jsonObject.optJSONObject("Classes");
JSONObject primaryJsonObj = classJsonObj.optJSONObject("Primary");
JSONObject internalClassJsonObj = primaryJsonObj.optJSONObject("Classes");
if(internalClassJsonObj != null){
int i = 1;
JSONObject dynmaicInternalJsonObj = null;
while (true){
dynmaicInternalJsonObj = internalClassJsonObj.optJSONObject(i+"");
if(dynmaicInternalJsonObj != null){
JSONArray sectionJsonArr = dynmaicInternalJsonObj.optJSONArray("sections");
Log.d("SectionArr", sectionJsonArr.toString());
// Finally you got your section data here...
if(sectionJsonArr != null){
for(int j=0; j<sectionJsonArr.length(); j++){
System.out.println("Dynamic Sections Data is: - " + sectionJsonArr.opt(j));
}
System.out.println("\n\n");
}
}else{
break;
}
i++;
}
}
} catch (JSONException e) {
e.printStackTrace();
}
如果您使用的是ionic(typescript或javascript),则可以使用以下方法
var json = "{
"Classes": {
"Primary": {
"Classes": {
"1": {
"section": [
"a",
"b"
]
},
"2": {
"sections": [
"a",
"b"
]
}
}
}
}
}";
for(let item in json.Classes.Primary.Classes){
console.log(item.sections);
}
如果要使用html在前端显示相同的数据,请使用* ngFor
<div *ngFor="let item in json.Classes.Primary.Classes ">
<h5>{{item.sections}}</h5>
</div>
我希望它有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.