java学习之JSON

JSON可以说是javascript的一种数据类型,我们学习JSON是为了在客户端的数据给读取出来,官方的解释是:概述:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效

(1).概念:javaScript Object Notation javaScript对象表示法
(2).实例:

​ var p={“name”:”张三”,”age”:”23″,””gender:”男”}
json现在多用于存储和交换文本信息的语法
进行数据传输
​ *JSON比XML更小、更快、更容易解析。

(3).语法:

  • JSON的格式是多变的,具有很多种嵌套方式,数组嵌套键值对,键值对嵌套数组
  • 不同的格式具有在不同场景的实用性

    var person={name:"张三",age:23,gnder:true};
    //alert(person);//嵌套
    var persons={person:[{name:"张三",age:23,gnder:true},
                        {name:"钟三",age:23,gnder:true},
                        {name:"王四",age:65,gender:false}
        ]
    }
    var ps=[{name:"张三",age:23,gnder:true},
        {name:"钟三",age:23,gnder:true},
        {name:"王四",age:65,gender:false}]


    var person={name:"张三",age:23,gnder:true};
    //alert(person);//嵌套
    var persons={person:[
        {name:"张三",age:23,gender:true},
        {name:"钟三",age:23,gender:true},
        {name:"王四",age:65,gender:false}]
    }
    var ps=[{name:"张三",age:23,gender:true},
        {name:"钟三",age:23,gender:true},
        {name:"王四",age:65,gender:false}]
    var name=person.name
    var person1 = persons.person[1].name;
    for (var ket in person){
        alert(person[ket])//拿到的是键名name,age,gender
    }
    //获取ps中所有的值
    for (var i=0;i<ps.length;i++){
        var p=ps[i];
        for (var key in p){
            alert(key+":"+p[key]);
        }
    }

JSON解析器:Jackson

转化方法:wirteValue(参数1,obj);
    参数1:
         File 将obj对象转化为JSON字符串,并保存到指定文件中
         Writer:将obj对象转化成JSON字符串,并将json数据填充到字符输出流里面
         OutputStream:将obj对象转化成json字符串,并填充到字节输出流
         Writer
        writeValueAsString :对象转化成json

代码使用

person&#x5BF9;&#x8C61;&#x548C;&#x524D;&#x9762;&#x7684;&#x5BF9;&#x8C61;&#x4E00;&#x6837;&#x4E09;&#x4E2A;&#x952E;&#x503C;&#x5BF9;&#xFF0C;name&#x3001;age&#x3001;gender

@Test
public  void  test() throws IOException {
    Person person = new Person();
    person.setAge(23);
    person.setGender(true);
    person.setName("张无");
    //创建jackson的核心对象 ObjectMapper
    ObjectMapper objectMapper = new ObjectMapper();

    String s = objectMapper.writeValueAsString(person);
    System.out.println(s);
    objectMapper.writeValue(new File("c://testdemo1.txt"),person);

}}

有些时候属性我们会不想要某些属性被js判断出来,可以采用注解的方式去@JacksonInject//忽略该属性,这样就不会被输出出来

或者通过 @JsonFormat(pattern = “yyyy-MM-dd”)去修改属性格式。

Person类

public class Person {
    private String name;
    private int age;
    private boolean gender;
    @JsonIgnore
    private String grifrind;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date birthday;

    public String getGrifrind() {
        return grifrind;
    }

    public void setGrifrind(String grifrind) {
        this.grifrind = grifrind;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public boolean isGender() {
        return gender;
    }

    public void setGender(boolean gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", gender=" + gender +
                '}';
    }
  • 转换方法:writeValue(参数1,obj)
  • 把字符串传入readValue函数,然后确定返回的对象类。
public class JSONdemo2 {
    @Test
    public void test() throws IOException {
        String json="{\"name\":\"钟三\",\"age\":44,\"gender\":false,\"birthday\":\"2022-05-27\"}]";
        //创建ObjectMapper
        ObjectMapper objectMapper = new ObjectMapper();
        Person person = objectMapper.readValue(json, Person.class);
        System.out.println(person);
    }
}

继续冲啊,内容很简单就是一些数据交互,马上就要进入框架的学习了准备沉淀一下。

Original: https://www.cnblogs.com/0x3e-time/p/16317473.html
Author: 不成大哥不改名
Title: java学习之JSON

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/643126/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 域名ICP备案<阿里云>

    阅读指引 适用人:想要通过国内域名访问页面或者接口,需要进行ICP备案解决问题:备案过程中发生的问题阅读耗时:3分钟参考链接:阿里云ICP流程-视频、备案相关问题、注销备案相关问题…

    技术杂谈 2023年6月21日
    094
  • Apache Thrift系列(一):Thrift基本及IDL语法

    thrift支持数据类型 基本类型: bool: 布尔值 byte: 8位有符号整数 i16: 16位有符号整数 i32: 32位有符号整数 i64: 64位有符号整数 doubl…

    技术杂谈 2023年5月31日
    087
  • 《西方经济学(微观部分)》(第7版)概念梳理

    一、需求、供给和均衡价格 蛛网模型 概念:运用弹性原理解释某些生产周期较长的商品在失去均衡时发生的不同波动情况的一种动态均衡分析理论。 非均衡时的波动情况 => 供、需弹性不…

    技术杂谈 2023年5月31日
    098
  • 到底什么是TORCH.NN?

    该教程是在notebook上运行的,而不是脚本,下载notebook文件。 PyTorch提供了设计优雅的模块和类: torch.nn, torch.optim, Dataset,…

    技术杂谈 2023年7月25日
    065
  • 打卡汇报

    无意间浏览了liluvu的博客,大概表达了自己意志力不够坚强,想提高自己的身体素质和表达能力,现在坚持做(锻炼、背诵诗词、朗读(朗读唠叨训练)),看到这,觉得和自己有几分相似,正如…

    技术杂谈 2023年5月31日
    087
  • Object.observe将不加入到ES7

    先请看 Object.observe 的 API javascript;gutter:true; Object.observe(obj, callback[, acceptList…

    技术杂谈 2023年6月1日
    090
  • TFS 升级错误一则 TF400654

    升级后报 [错误] TF400654: 无法配置规划工具。以下元素包含错误: BugWorkItems/BugWorkItems。TF400506: 此元素将定义表示 Bug 或缺…

    技术杂谈 2023年5月31日
    087
  • js中常用的语法

    一、注释 二、输出 输出有三种: 三、变量 概述:变量是在内存中生成一个空间用来存储数据。 1.声明变量 var age; 2.同时声明多个变量,使用逗号隔开。 Original:…

    技术杂谈 2023年5月31日
    0109
  • 什么是回表,怎么解决?

    表tbl有a,b,c三个字段,其中a是主键,b上建了索引,然后编写sql语句SELECT * FROM tbl WHERE a=1这样不会产生回表,因为所有的数据在a的索引树中均能…

    技术杂谈 2023年7月25日
    074
  • 罗德岛

    自从转行以后就建博了,一直没有动手写内容,今天开始写。 主要记录技术上的积累和项目上的工作感悟。 这里就是罗德岛,就在这里跳。 Original: https://www.cnbl…

    技术杂谈 2023年6月21日
    078
  • Unity3D 预备知识:C#与Lua相互调用

    在使用Unity开发游戏以支持热更新的方案中,使用ULua是比较成熟的一种方案。那么,在使用ULua之前,我们必须先搞清楚,C#与Lua是怎样交互的了? 一.基本原理 简单地说,c…

    技术杂谈 2023年6月1日
    098
  • SublimeText4 相比3的更新亮点与安装

    sublime text4 更新亮点 变更许可证使用条款 Sublime Text 使用许可证不再绑定于某个指定版本,而是在购买后的 3 年内可用,即使 Sublime Text …

    技术杂谈 2023年5月31日
    080
  • NTP和chrony时间同步

    古代计时方式 ●在远古时期,人类用来确定时间的方式是一些自然界”相对”亘古不变的周期。如地球的公转是为一年,月球的公转是为一月,地球的自转是为一天等,最早的…

    技术杂谈 2023年7月24日
    090
  • 如何在Windows 10 上定时备份线上Minio 资源

    @ 一、系统环境 二、软件安装 三、设置定时任务 3.1 创建账号 3.2 同步测试 3.3 编写同步脚本 3.4 脚本测试 3.5 创建定时任务 3.6 定时任务测试 四、总结 …

    技术杂谈 2023年6月21日
    099
  • scanf用法总结

    函数名: scanf功 能: 执行格式化输入用 法: int scanf(char *format[,argument,…]); scanf()函数是通用终端格式化输入…

    技术杂谈 2023年5月31日
    079
  • playwright 打包程序 无法定位程序输入点gethostname于动态链接库ws2_32.dll上

    node.exe 无法找到入口playwright 打包程序在win7上边报错需要替换包里边的node.exe程序 win7支持10-13 版本node 默认下载为16node-1…

    技术杂谈 2023年7月11日
    094
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球