前言

只有光头才能变强。

文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y

什么是JSON

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

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

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

为什么需要JSON

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

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

更加容易创建JavaScript对象

var p = {'city':['北京','上海','广州','深圳']};for(var i=0;i<p.city.length;i++){    document.write(p.city[i]+"<br/>");}'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" }];{ "firstName":"Bill" , "lastName":"Gates" },{ "firstName":"George" , "lastName":"Bush" },{ "firstName":"Thomas" , "lastName": "Carter" }];

JSON对象

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

    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);}    //在写JOSN的时候,记得把带上逗号    var txt = "{a:123," +            "b:'zhongfucheng'}";

    //使用eval解析JSON字符串,需要增添()    var aa = eval("(" + txt + ")");    alert(aa);

}

效果

不用框架时将JavaBean转成JSON

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

导入开发包

事例代码

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);    }}

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);

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

总结

这里写图片描述

最后

乐于输出干货的Java技术公众号:Java3y。公众号内有200多篇原创技术文章、海量视频资源、精美脑图,不妨来关注一下!

有帮助?好看!转发!


从零开始学JSON(修订版)相关推荐

  1. 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析 ...

  2. ASP.NET Core appsettings.json文件(9)《从零开始学ASP.NET CORE MVC》:

    本文出自<从零开始学ASP.NET CORE MVC> 推荐文章:ASP.NET Core launchsettings.json文件 ASP.NET Core appsettings.j ...

  3. ASP.NET Core launchsettings.json文件(8)《从零开始学ASP.NET CORE MVC》:

    本文出自<从零开始学ASP.NET CORE MVC> 推荐文章:ASP.NET Core 进程外(out-of-process)托管 ASP.NET Core launchsetting ...

  4. 从零开始学python | 什么是Python JSON?

    本文分享自华为云社区<从零开始学python | 什么是Python JSON以及如何实现?>,原文作者:Yuchuan . 您知道如何从在线API传输数据或将各种数据存储到本地计算机吗? ...

  5. 从零开始学前端:json对象,对象的序列化和反序列化 --- 今天你学习了吗?(JS:Day15)

    从零开始学前端:程序猿小白也可以完全掌握!-今天你学习了吗?(JS) 复习:从零开始学前端:字符串.数组的方法 - 今天你学习了吗?(JS:Day12/13/14) 文章目录 从零开始学前端:程序猿小 ...

  6. (38)Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】

    [本文章是否对你有用以及是否有好的建议,请留言] 在使用spring boot做负载均衡的时候,多个app之间的session要保持一致,这样负载到不同的app时候,在一个app登录之后,而访问到另外 ...

  7. (28)SpringBoot启动时的Banner设置【从零开始学Spring Boot】

    对于使用过Spring Boot的开发者来说,程序启动的时候输出的由字符组成的Spring符号并不陌生.这个是Spring Boot为自己设计的Banner: 1.    .   ____       ...

  8. 6. 管理你的css和js文件 - 从零开始学Laravel

    从零开始学laravel教程目录 在Laravel中我们可以直接将css和js文件放在app/public目录下,不过在正式项目开发中我们可能会使用Sass, Less, Stylus,Browser ...

  9. 从零开始学python微课视频版-从零开始学Python(微课视频版)

    基本信息 书名:从零开始学Python(微课视频版) :89.80元 作者:何明 编著 著 出版社:中国水利水电出版社 出版日期:2020_04_01 ISBN:9787517083818 字数:64 ...

  10. 从零开始学 Web 之 Ajax(七)跨域

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

最新文章

  1. http 和 https_HTTPS与HTTP区别
  2. python defaultdict 简单了解
  3. python自制有声小说
  4. Docker基础学习笔记02:Docker基本操作
  5. 服务器安全检查指引——日常维护说明
  6. celery-分布式任务队列-原理
  7. 安卓手机免root修改hosts文件
  8. telnet登陆入门
  9. 软件集合:人人刚需的神器,已解锁使用
  10. 【matlab】数值计算实现电路仿真
  11. python第五章模块总结
  12. html img返回上级目录,HTML相对路径 上级目录及下级目录的写法_HTML/Xhtml_网页制作...
  13. 防火墙阻止了IE服务器未响应,ie防火墙如何禁用
  14. 算术收益率与对数收益率(几何收益率)
  15. 延禧攻略插曲6首歌词+简谱
  16. 【Pytorch神经网络理论篇】 34 样本均衡+分类模型常见损失函数
  17. c语言的编程switch,C语言之switch详解
  18. matlab地震振幅属性分析,洛马普列塔地震分析 - MATLAB Simulink Example - MathWorks 中国...
  19. Java 中的内存映射(Mmap)
  20. c语言怎么做翻译软件,使用有道翻译API做翻译(c语言实现)

热门文章

  1. Hadoop之——重新格式化HDFS的方案
  2. GAC注册/卸载 dll
  3. java soapui 发送xml_javawebservice 中用soapui发送请求由于出现异常错误, 无法创建 SOAP 消息: XML 读进程错误...
  4. 邮箱客户端 gmail支持_如何联系Gmail支持
  5. BMP图像位图法隐藏信息
  6. Java 小型图书馆管理系统
  7. 去马赛克 Demosaic
  8. Window图片和传真查看器不能用
  9. Gym - 100886I 2015-2016 Petrozavodsk Winter Training Camp, Saratov SU Contest I - Archaeological Res
  10. Photoshop抠图教程(超详细)