java json使用以及js json

本文详细介绍了JSON的基本用法,包括在Java中如何解析和生成JSON对象及数组,以及前端JavaScript如何处理JSON数据。通过实例展示了JSON在前后端交互中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   前两天一直在医院跑,博客也没时间写,现在重拾心情将自己这两天学的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、付费专栏及课程。

余额充值