json数组怎么写Java?json数组格式是怎样的?

阳光 2022-03-07 15:14:06 java常见问答 11052

在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML、JSON等,而JSON是最受大家欢迎的,它采用完全独立于语言的文本格式,而这种特性使JSON成为理想的数据交换语言,并且易于人们的读写,那json数组怎么写Java?下面来我们就来给大家讲解一下。

可以创建json字符串在网上进行传输,也可以将获取到的json字符串写入到文件

1.需要创建的json数据

json数组怎么写Java?json数组格式是怎样的?.jpg

2.项目结构

1.jpg

CreateJson.java

package testcreatejson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
public class CreateJson
{
    public static void main(String[] args)
    {
        //首先要创建一个整体的json对象
        JsonObject object = new JsonObject();
        //1.json字符串
        //add:为当前json对象添加另一个json对象;addProperty:为当前json对象直接添加属性值
        object.addProperty("cat", "it");
        //2.json数组
        JsonArray array = new JsonArray();
        JsonObject language1 = new JsonObject();
        language1.addProperty("id", 1);
        language1.addProperty("name", "java");
        language1.addProperty("ide", "Eclipse");
        array.add(language1);
        JsonObject language2 = new JsonObject();
        language1.addProperty("id", 2);
        language1.addProperty("name", "Swift");
        language1.addProperty("ide", "Xcode");
        array.add(language2);
        JsonObject language3 = new JsonObject();
        language1.addProperty("id", 3);
        language1.addProperty("name", "C#");
        language1.addProperty("ide", "Visual Studio");
        array.add(language3);
        //将数组添加到Object中
        object.add("languages", array);
        //3.布尔类型的json数值
        object.addProperty("pop", true);
        System.out.println(object.toString());
    }
}

3. 运行结果截图

2.jpg

json数组格式是怎样的?

基础结构

JSON建构于两种结构:

1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

基础示例

简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是 JavaScript 很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。

表示名称 / 值对

按照最简单的形式,可以用下面这样的 JSON 表示 "名称 / 值对" :{ "firstName": "Brett" }

这个示例非常基本,而且实际上比等效的纯文本 "名称 / 值对" 占用更多的空间:firstName=Brett

但是,当将多个"名称 / 值对"串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个"名称 / 值对"的 记录,比如:

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }

从语法方面来看,这与"名称 / 值对"相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系。

表示数组

当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。例如,假设您希望表示一个人名列表。在 XML 中,需要许多开始标记和结束标记;如果使用典型的 名称 / 值 对(就像在本系列前面文章中看到的那种名称 / 值对),那么必须建立一种专有的数据格式,或者将键名称修改为 person1-firstName这样的形式。

如果使用 JSON,就只需将多个带花括号的记录分组在一起:

{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
]}

这不难理解。在这个示例中,只有一个名为 people的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):

{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" 
},
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" 
}
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" 
}
] }

这里最值得注意的是,能够表示多个值,每个值进而包含多个值。但是还应该注意,在不同的主条目(programmers、authors 和 musicians)之间,记录中实际的名称 / 值对可以不一样。JSON 是完全动态的,允许在 JSON 结构的中间改变表示数据的方式。

在处理 JSON 格式的数据时,没有需要遵守的预定义的约束。所以,在同样的数据结构中,可以改变表示数据的方式,甚至可以以不同方式表示同一事物。

JSON作为一个轻量级的数据格式比xml效率要高,所以作为程序员需要熟悉json的相关使用。最后大家如果想要了解更多json工具教程 知识,敬请关注奇Q工具网。

推荐阅读:

jsf框架为什么很少?jsf框架生命周期是怎样的?

git客户端有哪些好用工具?git好用工具分享

java面试题怎么背?java面试题有哪些?