ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); String str = (String) ois.readObject();
然后将str传给下一个activity
打印str的值是
{
“author”: “A”,
“bar_code_number”: “”,
“book_name”: “小时代”,
“books”: [],
“borrow_number”: 0,
“call_number”: “11111111”,
“can_borrow_number”: 0,
“id”: 0,
“location”: “3楼”,
“price”: 0,
“publishing_house”: “不知道”,
“total_number”: 0
},
{
“author”: “”,
“bar_code_number”: “”,
“book_name”: “A”,
“books”: [],
“borrow_number”: 0,
“call_number”: “”,
“can_borrow_number”: 0,
“id”: 0,
“location”: “”,
“price”: 0,
“publishing_house”: “”,
“total_number”: 0
},
{
“author”: “”,
“bar_code_number”: “”,
“book_name”: “AA”,
“books”: [],
“borrow_number”: 0,
“call_number”: “”,
“can_borrow_number”: 0,
“id”: 0,
“location”: “”,
“price”: 0,
“publishing_house”: “”,
“total_number”: 0
}
]
Intent intent =new Intent(context,Serach_activity.class); Bundle bundle =new Bundle(); bundle.putString("jsondata",str); intent.putExtras(bundle); startActivity(intent);
然后下面是解析json数据::
Bundle bundle=this.getIntent().getExtras(); String jsondata=bundle.getString("jsondata"); JsonObject obj = new JsonParser().parse(jsondata).getAsJsonObject(); Gson gson=new Gson(); List<Map<String,Object>> map = gson.fromJson(jsondata, new TypeToken<List<Map<String, Object>>>(){}.getType()); for(Map<String,Object> map2:map){ bookbean=new BookBean(); bookbean.setBookName(map2.get("book_name").toString()); bookbean.setLocation(map2.get("location").toString()); bookbean.setPublishing_House(map2.get("publishing_house").toString()); bookbean.setBar_Code_Number(map2.get("bar_code_number").toString()); bookbeanlist.add(bookbean); }
运行 就出现了错误,错误代码如下:
抠出来,直观的错误提示是:java.lang.illegalstateexception:Not a JSON Object
用的是gson。本人刚开始学json。求高手指点。网上找了好久也没有解决方法。
小弟用的是http://blog.csdn.net/J_Demon/article/details/50321391这个帖子的 解析json数组的方法。
本人的json数据和帖子上的例子的数据格式是一样的,为什么本人的会不行呢
44