Android的JSON解析这个,怎么样? [英] Android JSON parse this, how?
本文介绍了Android的JSON解析这个,怎么样?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
[
{
hotelid:[
{
hotelid:1,
名:AAA,
code:111
价格:111
},
{
hotelid:2,
名:BBB,
code:112
价格:211
},
{
hotelid:4,
名:CCC,
code:42,
价格:411
}...
我有这样的JSON,我怎么能分析它在android系统?我试过,但我只得到错误。
code:
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main); mycontext =这一点; examineJSONFile();
}类结果
{
清单<酒店及GT;酒店; //名称相匹配的JSON名 @覆盖
公共字符串的ToString(){返回hotel.toString();}
}
级酒店
{
字符串code; //名称相匹配的JSON名
字符串名称; //名称相匹配的JSON名
串hotelid; //名称相匹配的JSON名 @覆盖
公共字符串的toString()
{
返回的String.format(hotelid:{code =%s的,名称=%S,hotelid =%S},code,名字,hotelid);
}
}
无效examineJSONFile(){ InputStream为= this.getResources()openRawResource(R.raw.promo)。
字符串s;
尝试{
S = HttpConnect.streamToString(是); ObjectMapper映射器=新ObjectMapper();
mapper.setVisibilityChecker(mapper.getVisibilityChecker()withFieldVisibility(Visibility.ANY)); 结果[] =结果mapper.readValue(S,结果[]类);
结果结果=结果[0]; Log.e(RES,result.toString()+);
}赶上(例外五){
Log.e(犯错E +);
}
}
ERROR / ERR(23124):组织codehaus.jackson.map.JsonMappingException:能
无法反序列化类com.android.asd.asdStart $结果(类型
非静态成员类)作为一个Bean
块引用>解决方案我试图解析JSON字符串,我得到了一个解决方案也请试试这个:
字符串解析= \"[{\\\"hotelid\\\":[{\\\"hotelid\\\":\\\"1\\\",\\\"name\\\":\\\"aaa\\\",\\\"$c$c\\\":\\\"111\\\",\\\"price\\\":\\\"111\\\"},{\\\"hotelid\\\":\\\"2\\\",\\\"name\\\":\\\"bbb\\\",\\\"$c$c\\\":\\\"112\\\",\\\"price\\\":\\\"211\\\"},{\\\"hotelid\\\":\\\"4\\\",\\\"name\\\":\\\"ccc\\\",\\\"$c$c\\\":\\\"42\\\",\\\"price\\\":\\\"411\\\"}]}]\";
尝试{
JSONArray menuObject =新JSONArray(分析);
的for(int i = 0; I< menuObject.length();我++){
。字符串酒店= menuObject.getJSONObject(I).getString(hotelid)的toString();
的System.out.println(酒店=+酒店);
JSONArray menuObject1 =新JSONArray(酒店);
对于(INT J = 0; J< menuObject1.length(); J ++){
。字符串hotelid = menuObject1.getJSONObject(J).getString(hotelid)的toString();
的System.out.println(hotelid ==+ hotelid); 字符串名称= menuObject1.getJSONObject(J).getString(名称)的toString()。
的System.out.println(名==+姓名); 字符串code = menuObject1.getJSONObject(J).getString(code)的toString()。
的System.out.println(code ==+ code); 串价格= menuObject1.getJSONObject(J).getString(价格)的toString()。
的System.out.println(价格==+价格); }
} }赶上(JSONException E){
e.printStackTrace();
}[ { "hotelid": [ { "hotelid": "1", "name": "aaa", "code": "111", "price": "111" }, { "hotelid": "2", "name": "bbb", "code": "112", "price": "211" }, { "hotelid": "4", "name": "ccc", "code": "42", "price": "411" } ...
I have this JSON, how can I parse it in android? I tried it, but i only get errors.
code:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mycontext=this; examineJSONFile(); } class Result { List<Hotel> hotel; // name matches name in JSON @Override public String toString() {return hotel.toString();} } class Hotel { String code; // name matches name in JSON String name; // name matches name in JSON String hotelid; // name matches name in JSON @Override public String toString() { return String.format("hotelid:{code=%s, name=%s, hotelid=%s}", code, name, hotelid); } } void examineJSONFile() { InputStream is = this.getResources().openRawResource(R.raw.promo); String s; try { s = HttpConnect.streamToString(is); ObjectMapper mapper = new ObjectMapper(); mapper.setVisibilityChecker(mapper.getVisibilityChecker().withFieldVisibility(Visibility.ANY)); Result[] results = mapper.readValue(s, Result[].class); Result result = results[0]; Log.e("res", result.toString()+""); } catch (Exception e) { Log.e("err", e+""); } }
ERROR/err(23124): org.codehaus.jackson.map.JsonMappingException: Can not deserialize Class com.android.asd.asdStart$Result (of type non-static member class) as a Bean
解决方案I have tried to parse that JSON string and I got one solution please try this also:
String parse = "[{\"hotelid\":[{\"hotelid\":\"1\",\"name\":\"aaa\",\"code\":\"111\",\"price\":\"111\"},{\"hotelid\":\"2\",\"name\":\"bbb\",\"code\":\"112\",\"price\":\"211\"},{\"hotelid\":\"4\",\"name\":\"ccc\",\"code\":\"42\",\"price\":\"411\"}]}]"; try { JSONArray menuObject = new JSONArray(parse); for(int i=0;i<menuObject.length();i++){ String hotel = menuObject.getJSONObject(i).getString("hotelid").toString(); System.out.println("hotel="+hotel); JSONArray menuObject1 = new JSONArray(hotel); for(int j=0; j<menuObject1.length();j++){ String hotelid = menuObject1.getJSONObject(j).getString("hotelid").toString(); System.out.println("hotelid=="+hotelid); String name = menuObject1.getJSONObject(j).getString("name").toString(); System.out.println("name=="+name); String code = menuObject1.getJSONObject(j).getString("code").toString(); System.out.println("code=="+code); String price = menuObject1.getJSONObject(j).getString("price").toString(); System.out.println("price=="+price); } } } catch (JSONException e) { e.printStackTrace(); }
这篇关于Android的JSON解析这个,怎么样?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文