今天热门
热点:

json的问题,json问题


客户端 接收服务器传过来的 JSON字符串,代码如下
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
String str = (String) ois.readObject();

然后将str传给下一个activity

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。求大神指教。网上找了好久也没有解决方法。

解决方案

你这从结果看是一个json数组,不是json对象啊.他自然会报错的,你应该用jsonarray 接受,而不是jsonobject 然后循环array分别取出每个jsonobject.

http://www.bejson.com/

把 json字符串 复制进去 校验下
把错误改下

你的是jsonArray格式啊,肯定会报错,要用jsonArray解析的。

json数组解析

你这个是JsonArray不是JSONObject,你可以通过大小括号来判断

先把字符串变成jsonarray,再get(0),再像你这么走

www.zrccd.nettrue/topics/20180204/188734.htmlTechArticlejson的问题,json问题 客户端接收服务器传过来的JSON字符串,代码如下 ObjectInputStreamois=newObjectInputStream(socket.getInputStream()); Stringstr=(String)ois.readObject(); 然后将str传给下一个activity Intentin...

相关文章

    暂无相关文章

用户评论

大家都在看