json语法结构是怎样的?json如何获取数据?

阳光 2021-12-28 16:01:54 java常见问答 8355

JSON 是轻量级的文本数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,易于人阅读和编写,同时也易于机器解析和生成,那json语法结构是怎样的?下面来我们就来给大家讲解一下。

数据在名称/值对中:json数据是由键值对构成的

键用引号(单双都行)引起来,也可以不使用引号。

值得取值类型:

1. 数字(整数或浮点数)

2. 字符串(在双引号中)

3. 逻辑值(true 或 false)

4. 数组(在方括号中) {“persons”:[{},{}]}

5. 对象(在花括号中) {“address”:{“province”:“陕西”…}}

6. null

数据由逗号分隔:多个键值对由逗号分隔

花括号保存对象:使用{}定义json 格式

方括号保存数组:[]

示例:JSON的定义格式

//1.定义基本格式
var person = {"name": "张三", age: 23, 'gender': true};

可以这样写,但是建议数据名称统一格式(不加引号或者都加同一种引号),这样便与阅读。如下例:

//2.嵌套格式 {}———> []
var persons = {
    "persons": [
        
        {
            "name": "张三"
            , "age": 23
            , "gender": true
        },
        
        {
            "name": "李四"
            , "age": 24
            , "gender": true
        },
        
        {
            "name": "王五"
            , "age": 25
            , "gender": false
        }
        
]
};
//2.嵌套格式 []———> {}
var ps = [
    {
        "name": "张三"
        , "age": 23
        , "gender": true
    },
    
    {
        "name": "李四"
        , "age": 24
        , "gender": true
    },
    
    {
        "name": "王五"
        , "age": 25
        , "gender": false
    }];

json如何获取数据?

1. json对象.键名

//1.定义基本格式
var person = {
    "name": "张三"
    , "age": 23
    , "gender": true
};
//获取name的值
var name = person.name;
//2.嵌套格式 {}———> []
var persons = {
    "persons": [
        
        {
            "name": "张三"
            , "age": 23
            , "gender": true
        },
        
        {
            "name": "李四"
            , "age": 24
            , "gender": true
        },
        
        {
            "name": "王五"
            , "age": 25
            , "gender": false
        }
        
]
};
//获取王五值
var name1 = persons.persons[2].name;
//2.嵌套格式 []———> {}
var ps = [
    {
        "name": "张三"
        , "age": 23
        , "gender": true
    },
    
    {
        "name": "李四"
        , "age": 24
        , "gender": true
    },
    
    {
        "name": "王五"
        , "age": 25
        , "gender": false
    }];
//获取李四值
alert(ps[1].name);

2. json对象[“键名”]

//1.定义基本格式
var person = {
    "name": "张三"
    , "age": 23
    , "gender": true
};
//获取name的值
var name = person["name"];
//2.嵌套格式 {}———> []
var persons = {
    "persons": [
        
        {
            "name": "张三"
            , "age": 23
            , "gender": true
        },
        
        {
            "name": "李四"
            , "age": 24
            , "gender": true
        },
        
        {
            "name": "王五"
            , "age": 25
            , "gender": false
        }
        
]
};
//获取王五值
var name1 = persons.persons[2]["name"];
//2.嵌套格式 []———> {}
var ps = [
    {
        "name": "张三"
        , "age": 23
        , "gender": true
    },
    
    {
        "name": "李四"
        , "age": 24
        , "gender": true
    },
    
    {
        "name": "王五"
        , "age": 25
        , "gender": false
    }];
//获取李四值
alert(ps[1]["name"]);

数组对象[索引]

如上所述

遍历:

//1.定义基本格式
var person = {
    "name": "张三"
    , age: 23
    , 'gender': true
};
//获取person对象中所有的键和值
//for in 循环
for (var key in person)
{
    alert(key + ":" + person[key]);
}

alert(key + “:” + person.key);

这样的方式获取不行。因为相当于 person.“name”

var ps = [
    {
        "name": "张三"
        , "age": 23
        , "gender": true
    },
    
    {
        "name": "李四"
        , "age": 24
        , "gender": true
    },
    
    {
        "name": "王五"
        , "age": 25
        , "gender": false
    }];
//获取ps中的所有值
for (var i = 0; i < ps.length; i++)
{
    var p = ps[i];
    for (var key in p)
    {
        alert(key + ":" + p[key]);
    }
}

Json能够有效地提升网络传输效率,在实际工作中我们也经常会使用json提取数据,所以作为程序员需要掌握json的使用方法,进行更好的程序开发!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。

推荐阅读:

怎么通俗理解json?json有哪些功能?

java字符串如何转数字算法?Java输入数字如何输出倒序?

java产品架构原理是什么?Java应用架构原理