Web阶段:第十九章:JSON格式

简介: Web阶段:第十九章:JSON格式

什么是JSON?

1.介绍:JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换格式。

2.一种轻量级的数据交换格式

3.轻量级是跟xml做比较。json也可以用来保存数据,并且相同的数据使用json保存会比xml保存经小很多,而且解析速度要快很多。

客户端使用json

服务器使用json

传数据用json格式

Json在JavaScript中的使用。

json的定义

json是由键值对组成,并且由大括号包围,每个键都必须加引号引起来,键和值之间使用冒号进行分隔。

多组键值对之间使用逗号进行分隔。

json的访问

var 变量名 = {

“key”:值 , 值可以有很多种类型,number、string,json对象,比较数组,比较json数组

“key1”:值

};

如何访问json对象:

变量名.key

    <script type="text/javascript">
      // json的定义
      var jsonObj = {
          "key1" : 12,  // number
          "key2" : "abc",  // string
          "key3" : [33,"333",true], // 数组
          "key4" : { // json套json
            "key4_1" : 41,
            "key4_2" : "42String"
          },
          "key5" : [{
            "key5_1_1" : 511,
            "key5_1_2" : 512
          },{
            "key5_2_1" : 521,
            "key5_2_2" : 522
          }]
      };  
      // json的访问
//      alert( jsonObj.key1 );//12
//      alert( jsonObj.key2 );//abc
//      alert( jsonObj.key3[0] );//33
//      alert( jsonObj.key4.key4_2 );//42String
//      alert( jsonObj.key5[1].key5_2_2 );//522
//      alert( jsonObj );
//      json对象转字符串
      var jsonString = JSON.stringify( jsonObj );
      alert(jsonString);
        /* {"key1":12,"key2":"abc","key3":[33,"333",true],
          "key4":{"key4_1":41,"key4_2":"42String"},
      "key5":[{"key5_1_1":511,"key5_1_2":512},
      {"key5_2_1":521,"key5_2_2":522}]} */
      // json字符串转json对象
      var obj = JSON.parse( jsonString );
      alert(obj.key1);
    </script>

Json的两个常用方法

JSON.stringify() : 把json对象转换成为json字符串

JSON.parse() : 把json字符串转换成为json对象

Json在java中的使用

在java中使用json,需要先导入jar包。gson-2.2.4.jar

javaBean和json的互转


///

@Test
public void test1() throws Exception {
  Person person = new Person(1,"国哥很帅!");
  // 是谷歌jar包提供用来操作json的工具类
  Gson gson = new Gson();
  // 把person对象转换成为json字符串
  String jsonString = gson.toJson(person);  
  System.out.println( jsonString );
  // 把json字符串转换成为javaBean对象
  Person person1 = gson.fromJson(jsonString, Person.class);   
  System.out.println( person1 );
}

List 和json的互转

  @Test
  public void test2() throws Exception {
    List<Person> list = new ArrayList<Person>();
    list.add(new Person(1, "哥帅一次"));
    list.add(new Person(2, "哥帅二次"));
    list.add(new Person(3, "哥帅三次"));
    // 创建一个json的工具类
    Gson gson = new Gson();
    // 把list集合转换成为json字符串
    String listJsonString = gson.toJson(list);
    System.out.println( listJsonString );       
//    List<Person> list2 = gson.fromJson(listJsonString, new PersonListType().getType());       
    List<Person> list2 = gson.fromJson(listJsonString, new TypeToken<ArrayList<Person>>() {}.getType());        
    System.out.println( list2 );
    Person person = list2.get(0);
    System.out.println(person);
  }

map 和json的互转

@Test
public void test3() throws Exception {
  Map<String, Person> map = new HashMap<String, Person>();
  map.put("p1", new Person(1, "飞龙"));
  map.put("p2", new Person(2, "哥很帅气,我爱你!"));
  map.put("p3", new Person(3, "哥94V587"));
  Gson gson = new Gson();
  // 把集合转换json字符串
  String mapJsonString = gson.toJson(map);
  System.out.println( mapJsonString );
  // fromJson方法,如果要返回一个javaBean对象。返回Class类型
  // 如果要返回一个集合,要使用TypeToken类
  Map<String, Person> map2 = gson.fromJson(mapJsonString, new TypeToken<HashMap<String, Person>>(){}.getType());
  System.out.println( map2 );
  Person p = map2.get("p2");
  System.out.println(p);
}

案例:

@Test
public void test() {
  Person person = new Person(1,"很帅");
  System.out.println("person:"+person);
  Gson gson = new Gson();
  String json = gson.toJson(person);//person类转json
  System.out.println("person转json:"+json);
  Person person2 = gson.fromJson(json, Person.class);//json转Bean对象
  System.out.println("json转Person"+person2);
  List<Person> list = new ArrayList<Person>();
  list.add(new Person(1, "哥帅一次"));
  list.add(new Person(2, "哥帅二次"));
  list.add(new Person(3, "哥帅三次"));
  System.out.println("list集合:"+list);
  String gson2 = gson.toJson(list);//集合转json
  System.out.println("list集合转json:"+gson2);
  Map<String, Person> map = new HashMap<String, Person>();
  map.put("p1", new Person(1, "龙"));
  map.put("p2", new Person(2, "哥很帅气,我爱你!"));
  map.put("p3", new Person(3, "哥94V587"));
  System.out.println("map集合:"+map);
  String gString = gson.toJson(map);//集合转json
  System.out.println("Map集合转json:"+gString);
  Map<String, Person> map2 = gson.fromJson(gString,new TypeToken<HashMap<String, Person>>(){}.getType());//json转Bean
  System.out.println("json转map:"+map2);
}

结果:

person:Person [id=1, name=很帅]
person转json:{"id":1,"name":"很帅"}
json转PersonPerson [id=1, name=很帅]
list集合:[Person [id=1, name=哥帅一次], Person [id=2, name=哥帅二次], Person [id=3, name=哥帅三次]]
list集合转json:[{"id":1,"name":"哥帅一次"},{"id":2,"name":"哥帅二次"},{"id":3,"name":"哥帅三次"}]
map集合:{p1=Person [id=1, name=龙], p2=Person [id=2, name=哥很帅气,我爱你!], p3=Person [id=3, name=哥94V587]}
Map集合转json:{"p1":{"id":1,"name":"龙"},"p2":{"id":2,"name":"哥很帅气,我爱你!"},"p3":{"id":3,"name":"哥94V587"}}
json转map:{p1=Person [id=1, name=龙], p2=Person [id=2, name=哥很帅气,我爱你!], p3=Person [id=3, name=哥94V587]}
相关文章
|
15天前
|
JSON Java 数据格式
springboot中表字段映射中设置JSON格式字段映射
springboot中表字段映射中设置JSON格式字段映射
39 1
|
3月前
|
XML JSON 前端开发
【Web前端揭秘】XML与JSON:数据界的双雄对决,你的选择将如何改写Web世界的未来?
【8月更文挑战第26天】本文深入探讨了XML和JSON这两种广泛使用的数据交换格式在Web前端开发中的应用。XML采用自定义标签描述数据结构,适用于复杂层次数据的表示,而JSON则以键值对形式呈现数据,更为轻量且易解析。通过对两种格式的示例代码、结构特点及应用场景的分析,本文旨在帮助读者更好地理解它们的差异,并根据实际需求选择最合适的数据交换格式。
60 1
|
9天前
|
JSON JavaScript Java
对比JSON和Hessian2的序列化格式
通过以上对比分析,希望能够帮助开发者在不同场景下选择最适合的序列化格式,提高系统的整体性能和可维护性。
13 3
|
14天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
25天前
|
JSON 人工智能 算法
探索LLM推理全阶段的JSON格式输出限制方法
文章详细讨论了如何确保大型语言模型(LLMs)输出结构化的JSON格式,这对于提高数据处理的自动化程度和系统的互操作性至关重要。
|
11天前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
2月前
|
小程序 前端开发 中间件
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
本文介绍了如何在ThinkPHP框架中配置跨域请求,使用了TP内置的跨域类`\think\middleware\AllowCrossDomain::class`。文章还讨论了小程序和web网页在跨域请求格式上的区别,并提供了解决方案,包括修改跨域中间件源码以支持`Origin`和`token`。此外,还介绍了微信小程序跨域请求的示例和web网页前端发送Axios跨域请求的请求拦截器配置。
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
|
1月前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
75 2
|
1月前
|
JSON API 数据格式
商品详情数据JSON格式示例参考(api接口)
JSON数据格式的商品详情数据通常包含商品的多个层级信息,以下是一个综合多个来源信息的JSON数据格式的商品详情数据示例参考:
|
1月前
|
存储 JSON 前端开发
JSON与现代Web开发:数据交互的最佳选择
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也便于机器解析和生成。它以文本格式存储数据,常用于Web应用中的数据传输,尤其是在客户端和服务器之间。
47 0
下一篇
无影云桌面