java json使用以及js json

来源:互联网 发布:淘宝网联盟 编辑:程序博客网 时间:2024/05/20 14:23
   前两天一直在医院跑,博客也没时间写,现在重拾心情将自己这两天学的json跟大家分享一下,json作为一种几乎没有什么附加数据来标定格式的数据传送方式,它和xml等方案相比具有不可比拟的优点,毕竟使用json不仅可以使用户访问更加有效(加载更快),而且可以节省流量,深受很多开发者的喜爱。熬了,跑偏了,下面讲一下其用法  java:    在后台中我们肯定会有这样的需求,获取从前端传来的json数据,然后我们将其转化为json对象,然后会有获取其属性值或者将json对象转化为我们自定义的java对象,或者转化为自定义的java对象数组。    首先需要将json字符串转化为json对象,这里我们使用JSONObject jsonObj=JSONObject.fromObject(jsonStr); 怎么获取json属性值,可以使用jsonObject.getString("key");怎么得到我们自定义对象呢?用刚刚获取的属性值一个个set?no,第三方库为我们省去了这个过程,我们可以使用MyBean bean=JSONObject.toBean(jsonObj,MyBean.class);同样获取bean数组一样List<MyBean> beans=JSONArray.toList(jsonArr,,MyBean.class);很好使用?没错,但是这里面有一些注意的点,大家编程时注意一下为你们省点时间:    1,编写的bean必须是public类型和使用这个bean的地方分开否则会报找不到对应属性的setter方法错误    2,json对象的属性值必须和自定义属性名字相同    恩,从前台接收数据并处理,我们完成了,那么发送数据呢?这里又会涉及到如何产生json对象,json数组,别急,下面一一讲解:    1,产生json对象,有三种方法        //如何create一个json对象,三种方法    JSONObject jsonOb1=new JSONObject();    jsonOb1.put("name", "宋江");    jsonOb1.put("age", 23);    System.out.println("jsonOb1:"+jsonOb1);    String jsonStr2="{\"name\":\"林冲\",\"age\":24}";    JSONObject jsonOb2=JSONObject.fromObject(jsonStr2);    System.out.println("jsonOb2:"+jsonOb2);    Map jsonMap3=new HashMap<String,String>();//map的形式与json转换    jsonMap3.put("name", "武松");    jsonMap3.put("age", 34);    JSONObject jsonOb3=JSONObject.fromObject(jsonMap3);    System.out.println("jsonOb3:"+jsonOb3);结果:jsonOb1:{"name":"宋江","age":23}jsonOb2:{"name":"林冲","age":24}jsonOb3:{"age":34,"name":"武松"}   2,产生json对象数组,提供两种方法//如何create一个json数组,两种方法    // json字符串数组->json数组 String jsonStr="[{\"name\":\"李逵\",\"age\":32},{\"name\":\"鲁智深\",\"age\":33}]"; JSONArray jsonArr1=JSONArray.fromObject(jsonStr); System.out.println("jsonArr1:"+jsonArr1); JSONArray jsonArr2=new JSONArray();//json对象——>json数组 jsonArr2.add(0, jsonOb1); jsonArr2.add(1, jsonOb2); jsonArr2.add(2, jsonOb3); System.out.println("jsonArr2:"+jsonArr2);     结果:jsonArr1:[{"name":"李逵","age":32},{"name":"鲁智深","age":33}]     jsonArr2:[{"name":"宋江","age":23},{"name":"林冲","age":24},{"age":34,"name":"武松"}]     顺便讲一下如何使用json数组:    //json数组得到json对象 Object first=jsonArr1.get(0); System.out.println("first:"+first); JSONObject jo=JSONObject.fromObject(first); String name=jo.getString("name"); int age=jo.getInt("age"); System.out.println("name:"+name); System.out.println("age:"+age);    结果: first:{"name":"李逵","age":32} name:李逵 age:32    很细节,很奈斯!讲完了?nope!我们仅仅讲了3/4,前端js如何使用json,别急,且听我细细道来。    还是按着上面的思路,收,发处理。    收,收到json字符串,我们需要将其转化为json对象以做进一步操作。可以使用第三库json.js使用,JSON.parse(jsonStr);    发,将json对象变成json字符串,JSON.stringify(jsonObj);    至于复杂的json数组使用,说实话,一样的道理,并不难    好了,就讲到这里了,我去吃下饭
0 0