如何在Javascript中访问多个JSON列表

如何在Javascript中访问多个JSON列表,javascript,arrays,json,servlets,Javascript,Arrays,Json,Servlets,我有一个Java servlet,它执行以下操作: JSONObject jsonObject = new JSONObject(); JSONArray jsonArray = new JSONArray(); jsonObject.put("Status", status); jsonObject.put("isActive", isActive); jsonArray.add(jsonObject); response.getWriter().write(jsonArray.toStri

我有一个Java servlet,它执行以下操作:

JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
jsonObject.put("Status", status);
jsonObject.put("isActive", isActive);

jsonArray.add(jsonObject);
response.getWriter().write(jsonArray.toString());

//Now I have for loops here.

JSONArray jsonArray2 = new JSONArray();
for(int i=0;i<list.size();i++){
DTO dtost = list.get(i);
 JSONObject jsonObj = new JSONObject();
jsonObj.put("Label",dtost.getLabel());
jsonObj.put("UNID",dtost.getUNID());

jsonArray2.add(jsonObj); 
}

response.getWriter().write(jsonArray2.toString());
我正在尝试下面的Javascript代码片段,但没有检索到任何代码片段

success: function(data) {

  alert(data[0].Status); // Nothing
}

谢谢。

上述内容是无效的JSON。 但是,如果我们将JSON修改为 [{状态:通过,isActive:No}],{标签:会员卡,UNID:01},{标签:忠诚卡,UNID:02}] 那么它就是一个有效的JSON

因此,要访问上述数据的状态参数,如下所示:-

成功:functiondata{ alertdata[0][0]。状态;
}重新构造java代码以生成有效的json对象。 {第一个:[{状态:已通过,isActive:No}],第二个:[{标签:会员卡,UNID:01},{标签:忠诚卡,UNID:02}]}


[{Status:Passed,isActive:No}][{Label:MembershipCard,UNID:01},{Label:LoyaltyCard,UNID:02}]无效。我在这里看不到与Java或servlet的关系。您的数据示例无效。基本上有两个JSON数组,而只有一个被认为是有效的JSONHi,我正在从一个Java servlet检索JSON数据。Hi@neeraj,我更新了我的代码,我如何才能检索这种JSON结果?谢谢。所以基本上,两个数组[{Status:Passed,isActive:No}]**和**[{Label:MembershipCard,UNID:01},{Label:LoyaltyCard,UNID:02}]需要放在一个数组中,以使其成为有效的JSON。类似这样的->[arr1,arr2]。它将为您提供我上面提到的JSON数据,然后您可以轻松访问itHello,谢谢您。我能够以以下格式检索数据:{second:[{Label:MembershipCard,UNID:01}],{first:[{Status:Passed,isActive:No}]}我可以问一下如何从第一个和第二个中检索数据吗?例如,我想从第一个中访问状态?@Ragome-假设您想获取键为Status的所有对象。让pullkeys=input,key=>{if!input{return[];}return object.keysinput.reduceout,k=>{if!input[k]{return out;}让values=input[k];ifvalues instanceof Array{out=out.concatvalues.filterval=>{return val.hasOwnPropertykey;};}return out;},[];};将java代码的输出传递到这个函数中-pullkeys{second:[{Label:MembershipCard,UNID:01}],{first:[{Status:Passed,isActive No}],Status;
success: function(data) {

  alert(data[0].Status); // Nothing
}
JSONObject output= new JSONObject();
JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();
jsonObject.put("Status", status);
jsonObject.put("isActive", isActive);

jsonArray.add(jsonObject);
output.put("first", jsonArray);

//Now I have for loops here.

JSONArray jsonArray2 = new JSONArray();
for(int i=0;i<list.size();i++){
DTO dtost = list.get(i);
 JSONObject jsonObj = new JSONObject();
jsonObj.put("Label",dtost.getLabel());
jsonObj.put("UNID",dtost.getUNID());

jsonArray2.add(jsonObj); 
}
output.put("second", jsonArray2);
response.getWriter().write(output.toString());