在下面的代码中,我试图用JSON对象(书和相机)填充JSON数组。
[ {
"camera":{
"picture":"http:\/\/img7.flixcart.com\/image\-imacyb5emj5yztet.jpeg",
"model":"Lumix DMC-FP3 Point & Shoot",
"make":"Panasonic",
"price":5830
}
},
{
"camera":{
"picture":"http:\/\/sp.sony-europe.com\/da.jpeg",
"model":"Digital Still Camera - H Series - DSC-HX200V",
"make":"Sony",
"price":510
}
},
{
"book":{
"description":"What is self, and how can a",
"authors":"Douglas R Hofstadter",
"price":650,
"id":40724766,
"title":"G\u00f6del, Escher, Bach: an Eternal Golden Braid"
}
},
{
"camera":{
"picture":"http:\/\/www.usa.canon.com\/60d_586x186.gif",
"model":"Digital SLR Camera EOS 60D",
"make":"Canon",
"price":999
}
},
{
"book":{
"description":"Tgdfgf fgfg ",
"authors":"Harold Abelson and Gerald Jay Sussman with Julie Sussman",
"price":469,
"id":51087,
"title":"Structure and Interpretation of Computer Programs"
}
},
]
public void getDetalFromServer() {
// TODO Auto-generated method stub
String URL="xyz.php";
HttpClient client= new DefaultHttpClient();
HttpPost post=new HttpPost(URL);
try {
HttpResponse response =client.execute(post);
HttpEntity getResEntity=response.getEntity();
String result="";
if(getResEntity!=null){
result=EntityUtils.toString(getResEntity);
System.out.println("result from server: "+result);
bookDescription=new ArrayList<String>();
bookAuthors=new ArrayList<String>();
bookPrice=new ArrayList<String>();
bookID=new ArrayList<String>();
bookTitle=new ArrayList<String>();
responseArray=new JSONArray(result);
for(int i=0;i<responseArray.length();i++){
JSONObject bookObject=(JSONObject) responseArray.getJSONObject(i);
bookDescription.add(bookObject.get("description").toString());
bookAuthors.add(bookObject.get("authors").toString()); bookPrice.add(bookObject.get("price").toString());
bookID.add(bookObject.get( “ID”)的toString()); bookTitle.add(bookObject.get( “标题”)的toString());
}
}
} catch (Exception e) {
// TODO: handle exception
}
}
使用此代码,我只能获得响应的第一个对象。现在我只是试图从响应中解析Music对象。
答案 0 :(得分:2)
responseArray=new JSONArray(result);
JSONObject bookObject=null;
JSONObject json_user1=null;
JSONObject json_user2=null;
for(int i=0;i<responseArray.length();i++){
bookObject= responseArray.getJSONObject(i);
if (bookObject.has("book")){
json_user1 = bookObject.getJSONObject("book");
bookDescription.add(json_user1.getString("description").toString());
bookAuthors.add(json_user1.getString("authors").toString());
}
else if(bookObject.has("camera")){
json_user2 = bookObject.getJSONObject("camera");
/** Add Camera data in the lists here same as done for book */
}
}
试试这个....你的json数组里面放了json对象。所以你需要首先从数组中检索书籍和相机等json对象,然后从book对象中获取描述和所有...:)