JSON入门看这一篇就够了

小编 2026-06-27 阅读:607 评论:0
什么是JSONJSON:JavaScript Object Notation 【JavaScri...

什么是JSON

JSON:JavaScript Object Notation 【JavaScript 对象表示法】

JSON 是存储和交换文本信息的语法。类似 XML。

JSON采用完全独立于任何程序语言的文本格式,使JSON成为理想的数据交换语言S

为什么需要JSON

提到JSON,我们就应该和XML来进行对比。XML也是一种存储和交换文本信息的手段。那么JSON好在哪里呢??

JSON 比 XML 更小、更快,更易解析

  • javaScript原生支持JSON,解析速度会很快
  • XML解析成DOM对象的时候,浏览器【IE和fireFox】会有差异
  • 使用JSON会更简单

JSON入门看这一篇就够了

更加容易创建JavaScript对象

var p = {'city':['北京','上海','广州','深圳']};for(var i=0;i<p.city.length;i++){    document.write(p.city[i]+"<br/>");}

JSON语法

客户端与服务端的交互数据无非就是两种

  • 数组
  • 对象

于是乎,JSON所表示的数据要么就是对象,要么就是数组

JSON语法是javaScript语法的子集,javaScript用[]中括号来表示数组,用{}大括号来表示对象,JSON亦是如此

JSON数组:

    var employees = [    { "firstName":"Bill" , "lastName":"Gates" },    { "firstName":"George" , "lastName":"Bush" },    { "firstName":"Thomas" , "lastName": "Carter" }    ];

JSON对象

        var obj = {            age: 20,            str: "zhongfucheng",            method: function () {                alert("我爱学习");            }        };

当然啦,数组可以包含对象,在对象中也可以包含数组


解析JSON

javaScript原生支持JSON的,我们可以使用eval()函数来解析JSON,把JSON文本数据转换成一个JavaScript对象。

        function test() {            //在写JOSN的时候,记得把带上逗号            var txt = "{a:123," +                    "b:'zhongfucheng'}";            //使用eval解析JSON字符串,需要增添()            var aa = eval("(" + txt + ")");            alert(aa);        }

效果

JSON入门看这一篇就够了

不用框架时将JavaBean转成JSON

  • 使用Strus2的时候,Struts2自带了组件能够让JavaBean对象、集合转成是JSON,不用我们自己拼接...这是非常方便的。
  • 使用SpringMVC的时候,SpringMVC也支持将JavaBean转成JSON

但是,我们不一定使用框架来做开发呀。因此,我们还得学习使用第三方库来将JavaBean对象、集合转成JSON

导入开发包

  • commons-io-2.0.1.jar
  • commons-lang-2.5.jar
  • commons-collections-3.1.jar
  • commons-beanutils-1.7.0.jar
  • ezmorph-1.0.3.jar
  • json-lib-2.1-jdk15.jar

事例代码

package cn.itcast.javaee.js.bean2json;import net.sf.json.JSONArray;import java.util.*;/** * 使用第三方工具,将JavaBean对象/List或Set或Map对象转成JSON  * @author AdminTC */public class TestBean2Json {    private static void javabean2json() {        City city = new City(1,"广州");        JSONArray jSONArray = JSONArray.fromObject(city);        String jsonJAVA = jSONArray.toString();        System.out.println(jsonJAVA);        //[{"id":1,"name":"广州"}]    }    private static void list2json() {        List<City> cityList = new ArrayList<City>();        cityList.add(new City(1,"广州"));        cityList.add(new City(2,"珠海"));        JSONArray jSONArray = JSONArray.fromObject(cityList);        String jsonJAVA = jSONArray.toString();        System.out.println(jsonJAVA);        //[{"id":1,"name":"广州"},{"id":2,"name":"珠海"}]    }    private static void set2json() {        Set<City> citySet = new LinkedHashSet<City>();        citySet.add(new City(1,"广州"));        citySet.add(new City(2,"珠海"));        JSONArray jSONArray = JSONArray.fromObject(citySet);        String jsonJAVA = jSONArray.toString();        System.out.println(jsonJAVA);        //[{"id":1,"name":"广州"},{"id":2,"name":"珠海"}]    }    private static void javabeanlist2json() {        List<City> cityList = new ArrayList<City>();        cityList.add(new City(1,"中山"));        cityList.add(new City(2,"佛山"));        Province province = new Province(1,"广东",cityList);                JSONArray jSONArray = JSONArray.fromObject(province);        String jsonJAVA = jSONArray.toString();        System.out.println(jsonJAVA);        /*          [             {              "id":1,              "name":"广东"              "cityList":[{"id":1,"name":"中山"},{"id":2,"name":"佛山"}],             }          ]          */    }    private static void map2json() {                List<City> cityList = new ArrayList<City>();        cityList.add(new City(1,"中山"));        cityList.add(new City(2,"佛山"));                Map<String,Object> map = new LinkedHashMap<String,Object>();        map.put("total",cityList.size());//表示集合的长度        map.put("rows",cityList);//rows表示集合                JSONArray jSONArray = JSONArray.fromObject(map);        String jsonJAVA = jSONArray.toString();        System.out.println(jsonJAVA);        //[{"total":2,"rows":[{"id":1,"name":"中山"},{"id":2,"name":"佛山"}]}]                jsonJAVA = jsonJAVA.substring(1,jsonJAVA.length()-1);        System.out.println(jsonJAVA);    }    }

把要解析成JSON 的javaBena对象、集合放进下面这段代码即可!

        JSONArray jSONArray = JSONArray.fromObject(map);

无论放进去什么,返回的都是数组

总结

JSON入门看这一篇就够了

如果文章有错的地方欢迎指正,大家互相交流。习惯在微信看技术文章的同学,可以关注微信公众号:Java3y

更多的文章可往:文章的目录导航
版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表