JSON入门

JSON入门

大家好,又见面了,我是全栈君。

什么是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会更简单

这里写图片描述

更加容易创建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); } 

效果

这里写图片描述

不用框架时将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);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107703.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 字符串数组转化为list_字符串 java list

    字符串数组转化为list_字符串 java listpublicclassTest{publicstaticvoidmain(String[]args){String[]animals={“dog”,”cat”,”rabbit”,”fish”};ListanimalList=Arrays.asList(animals);for(Stringstr:animalList){System.out.println(str…

  • C语言字符串匹配函数建议收藏

    C语言字符串匹配函数,保存有需要时可以用:1#include2#include3#include4#include5#include67/*8pattern:9pos

    2021年12月20日
  • 什么是是JAVA构造函数

    什么是是JAVA构造函数每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提供了一个特殊的成员函数,叫做构造函数(Constructor)。一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为…

  • 台风路径实时监控_查看Linux版本

    台风路径实时监控_查看Linux版本查看CentOS版本方法有以下命令可以查看:命令1:rpm-qcentos-release结果为:centos-release-7-7.1908.0.el7.centos.x86_64命令2:lsb_release-a这个命令适用于所有的linux,包括Redhat、SuSE、Debian、Centos等发行版。结果为:LSBVersion::core-4…

  • 自己工作用到的 linux添加路由的方法

    自己工作用到的 linux添加路由的方法linux下添加路由的方法一、查看及添加临时路由1.查看路由(linux下)[root@nfs~]#route#同netstat-rnKernelIProutingtableDestinationGatewayGenmaskFlagsMetricRefUseIface192.168.90.2*255.255.255.255UH00

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号