json的含义及使用

json的含义及使用

JSON(JavaScript对象表示法 JavaScript Object Notation),是存储和交换文本信息的语法,轻量级的文本数据交换格式,类似XML,但是比XML更小、更快、更容易解析。

JSON独立于各种编程语言平台,并且几乎所有的主流编程语言都内置了对JSON数据格式的支持。

JSON语法规则

1、数据以名/值 对的形式表示

2、数据之间以逗号分隔

3、花括号保存对象

4、方括号保存数组

 

JSON值

JSON名值对包括字段名称(包含在双引号中),后面一个冒号,然后是值,如:

"username": "Jessica"

JSON值可以包含以下多种类型:

数字(整数和浮点数)

字符串(在双引号中)

逻辑值(true或false)

数组(在方括号中)

对象(在花括号中)

null

 

JSON对象包含在花括号中,可以包含多个名/值对,其值可以为数组;JSON数组包含在方括号中,可以包含多个对象。JSON既可以以花括号开头,也可以以方括号开头,JSON对象和JSON数组可以互相嵌套,如:

{

    "users": [

        {"username":"yzy",age:30},

        {"username":"yzy1",age:23},

        {"username":"yzy2",age:42}

    ]

}


JSON解析和序列化

早期的JSON解析器基本上就是使用JavaScript的eval()函数。由于JSON是JavaScript语法的子集,因此eval()函数可以解析并返回JavaScript对象和数组。

ECMAScript 5对解析JSON的行为进行了规范,定义了全局对象JSON。

关于后台json的使用

1、json有两种格式
(1)、对象
例子:{"key1":value1,"key2":value2,"key3":value3,...}
(2)、数组
例子:[{"key1":value1,"key2":value2,"key3":value3},{"key1":value1,"key2":value2,"key3":value3}...]



后台实例:
public static <T> T parseJSON(String json, Type type) {
              Gson gson = new Gson();
              T info = gson.fromJson(json, type);
              return info;
              }
public static void main(String[] args) {
     Gson gson = new Gson();
     jsonModel  j = new jsonModel();
     j.setAge(11);
     j.setName("哈雷路亚");
     j.setId(23);
     //json生成对象
     String json = gson.toJson(j);
     System.out.println("生成对象:"+json);
     //json生成对象数组
     List<jsonModel> list=new ArrayList<jsonModel>(); 
     list.add(j);
     jsonModel j1=new jsonModel(); 
    j1.setAge(56);
    j1.setName("你好");
    j1.setId(89);
    list.add(j1);
    String json2 = gson.toJson(list);
    System.out.println("生成数组:"+json2);
    //gron解析json对象字符串  
           String age = "";
           String id = "";
           String name = "";
           String title1 = "{'age':'11','name':'哈雷路亚','id':'23'}";
           List<JSONObject> listGson=new ArrayList<JSONObject>();
           JSONObject result = gson.fromJson(title1, JSONObject.class);
           age = result.getAge();
           id = result.getId();
           name = result.getName();
           System.out.println(age+","+id+","+name);
    //gron解析json对象数组字符串
           List<JSONObject> info = new ArrayList<JSONObject>();
           String title = "[{'age':'11','name':'哈雷路亚','id':'23'},{'age':'21','name':'哈1亚','id':'2223'}]";
           try {
              info = parseJSON(title, new TypeToken<ArrayList<JSONObject>>() {}.getType());
              } catch (Exception e) {
                     // TODO: handle exception
                     e.printStackTrace();
              }
}

关于前端json的使用

使用JSON.parse()把字符串解析为JSON对象或数组。
//返回JSON对象    log格式化输出log内容
var jsonStr1 = '{"username":"Jessica","age":23}';
var jsonObj = JSON.parse(jsonStr1);
console.log(jsonObj.username); //Jessica
console.log(jsonObj.age) //23

//返回JSON数组
var jsonStr2 = '[{"username":"Jacky","age":30}, {"username":"Jessica","age":23}]';
var jsonArr = JSON.parse(jsonStr2);
for(var i=0;i<jsonArr.length;i++) {
    console.log(jsonArr[i].username); //Jacky Jessica

JSON序列化
使用JSON.stringify()把JSON对象或数组序列化为字符串。
//序列化JSON对象   log格式化输出log内容
var jsonObj = {
    "username": "Jessica",
    "age": 23
};
var jsonStr1 = JSON.stringify(jsonObj);
console.log(jsonStr1); //{"username":"Jessica","age":23}

//序列化JSON数组
var jsonArr = [
    {"username":"Jacky","age":30},
    {"username":"Jessica","age":23}
];
var jsonStr2 = JSON.stringify(jsonArr, null, 2);
console.log(jsonStr2);
/* 输出结果:
[
  {
    "username": "Jacky",
    "age": 30
  },
  {
    "username": "Jessica",
    "age": 23
  }
]
*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

栗子~~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值