json在java和js中的使用

    前两天一直在医院跑,博客也没时间写,现在重拾心情将自己这两天学的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数组使用,说实话,一样的道理,并不难
好了,就讲到这里了,我去吃下饭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值