Java常见的Json格式

Json

常见的格式1

{

    "name": "张三",
    "age": 27,
    "address": "北京市 朝阳区",
    "phone": "15326564587"
}
这一种是比较简单的json对象结构,解析比较简单方便
解析方式1
/**
 * 测试解析Json字符串 {
 *             key:value,
 *             key:value
 *                      }
 *
 * @param json json字符串
 */
private void json01(String json) {
    try {
        JSONObject object = new JSONObject(json);
        Person person = new Person();
        String name = object.getString("name");
        person.setName(name);
        int age = object.getInt("age");
        person.setAge(age);
    } catch (JSONException e) {
        e.printStackTrace();
    }
}
Person类
public class Person {
    private String name;
    private int age;
    private String address;
    private String phone;

    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;
    }
解析方式2:
通过导入 gson-2.2.4.jar 解析
这种方式,Person类定义的字段和json字符串中value值名称保持一致


Person类

解析

这种方式解析,效率比较高

常见的格式2:


这种方式是多个对象,放到一个jsonArray数组/集合中,解析的方式类似格式1,但是有所区别,person类类似与格式1
解析方式1

解析方式2
通过 导入 gson-2.2.4.jar 解析

常见格式3:


这一种是字符串中,对象包含数组
解析方式1

解析方式2:
通过导入gson-2.2.4.jar 解析
Class类  定义数据接收的字段一定要和json字符串保持一致


解析

模型类 Bean

get set 方法

解析数据的时候,常常定义对应的实例对象,对象中的字段可以定义public,解析直接进行解析,直接赋值,直接取值;也可以定义private类型,通过get,set方法取值,赋值。
两种方式有什么差异呢,我们改怎么用合适呐?
有时候我们希望我们的bean对象只允许特定的类调用值,谁用get/set方法就能保护你的值不能其他类调用或者修改,这就是封装的好处;
在特殊情况下,你可以通过set方法,对传进来的值做处理,例如:
private int age;
public void setAge(int age){
    if(age<0){
        this.age=0;
    }else{
        this.age=age;
    }
}

序列化

当我们创建好模型对象的时候,比如


有时候 我们的className已经在项目中大量的使用了,这个时候后台服务器修改了字段className,导致我们的也相应做修改,这就导致项目中的引用也要修改,费时容易出错,我们可以通过序列化一个值,来保证和json中字符一直就行


  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值