JSON-基础

 

定义

        JSON是一种轻量级数据交换格式,全称为Javascript Object Notation,ECMA(欧洲计算机制造商协会)的一个子集。采用完全独立于编程语言的文本格式来储存和表示数据。采用键值对key-value形式。

        如下所示:

{
status: 1,
data: [
    {
        id: 1,
        name: "聊聊shell——环境变量配置文件",
        picSmall: "http://img.mukewang.com/55237dcc0001128c06000338-300-170.jpg",
        picBig: "http://img.mukewang.com/55237dcc0001128c06000338.jpg",
        description: "为你带来shell中的环境变量配置文件",
        learner: 12312
    },
    {
        id: 2,
        name: "数学知识在CSS动画中的应用",
        picSmall: "http://img.mukewang.com/55249cf30001ae8a06000338-300-170.jpg",
        picBig: "http://img.mukewang.com/55249cf30001ae8a06000338.jpg",
        description: "数学知识与CSS结合实现酷炫效果",
        learner: 45625
    
      ],
msg: "成功"
}

数据结构

数据结构

Obeject:对象形式

使用{}包含的键值对结构,

key必须为String类型

value可以是任意类型数据结构或数据类型

Array:数组形式使用中括号[]表示数据类型是数组,其里面的元素以逗号“,”分隔开
数据类型

String

number

boolean

null

 

优点

  • 轻量级,占用宽带小
  • 易于阅读和编写,便于js解析
  • 支持复合数据类型(数组、对象、字符串、数字),能直接为服务器段代码使用,大大简化了服务器端和客户端的代码开发量。
  • 易于解析,客户端JavaScript可以简单的通过eval_r()进行JSON数据的读取;

缺点

  • 相对XML通用性较差,数据可描述性较差。

与XML的比较

  • 据体积方面:JSON相对XML来讲,数据的体积小(去掉了很多重复的标记字符),传递的速度更快些
  • 数据交互方面:JSON与JavaScript的交互更加方便,更容易解析处理,更好地进行数据交互
  • 数据描述和可读性方面:JSON对数据的描述性比XML较差。
  • 传输速度方面:JSON的速度要远远快于XML

   总结:配置文件用XML,传输数据用JSON(所谓的轻量级体现在解析上);逐步解析用XML(SAX技术可以边传输边解析),整体解析用JSON(目前只能整体一次性解析);大规模数据传输用XML,小数据用JSON。

解析

 

JSON字符串和JSON对象

1.JSON字符串

    JSON字符串如下所示:

var person='{"name":"zhangsan","sex":"男","age":"24"}';//json字符串

2.JSON对象

var person={"name":"zhangsan","sex":"男","age":"24"};//json对象

3.JS中JSON字符串和JSON对象之间的转换

  • JSON字符串转换为JSON对象
var jsonStr='{"name":"zhangsan","sex":"男","age":"24"}';//json字符串
//方式一
var jsonObj = JSON.parse(jsonStr);
//方式二
var jsonObj = eval('(' + jsonStr +')');
  • JSON对象转换为JSON字符串​​​​​​​
var jsonObj={"name":"zhangsan","sex":"男","age":"24"};//json字符串
var jsonStr = JSON.stringify(jsonObj);

 

Java中定义JSON字符串

     在Java中定义JSON如下:

String jsonSte = "{\"name\":\"lucky\",\"age\":\"20\"}";

    上述使用了斜杠\来对双引号进行转义,但是这样定义JSON字符串复杂,还容易写错,这里有一个简便的方式如下:

导入Jackson的jar包

      使用Maven导入,如下:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.24</version>
</dependency>

定义JSON字符串

Map map=new HashMap();
map.put("name","lucky");
map.put("age","20");
String  param= JSON.toJSONString(map);

 

 

 

参考:https://www.cnblogs.com/nxxshxf/p/5226813.html

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luckyliuqs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值