在Android开发过程中,经常需要与后台进行数据的交互,JSON作为一种轻量级的数据格式,经常被

后台作为传输数据的格式,将数据传输到客户端。JSON有两种格式,一种是对象格式的,另一种是数组格式的。

下面是一组json字符串:

String json="{"resultcode":"200","reason":"Return Successd!","result":{"province":"北京","city":"","areacode":"010",
"zip":"100000","company":"联通","card":""},"error_code":0}"

1.我们按json原生解析的方法一步一步进行解析:

 JSONObject jsonObject = new JSONObject(json);JSONObject object = jsonObject.getJSONObject("result");String province=object.getString("province");String city=object.getString("city");String areacode=object.getString("areacode");

2.将json转换为java对象:首先根据json写出对应的实体类:

public class Root<T> {private String resultcode;private String reason;private T result;private int error_code;public void setResultcode(String resultcode){this.resultcode = resultcode;
    }public String getResultcode(){
        return this.resultcode;
    }
    public void setReason(String reason){
        this.reason = reason;
    }
    public String getReason(){
        return this.reason;}
    public void setResult(T result){
        this.result = result;}
    public T getResult(){
        return this.result;
    }
    public void setError_code(int error_code){
        this.error_code = error_code;
    }
    public int getError_code(){
        return this.error_code;
    }
}
public class result {private String province;private String city;private String areacode;private String zip;private String company;private String card;public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getZip() {return zip;}public void setZip(String zip) {this.zip = zip;}public String getAreacode() {return areacode;}public void setAreacode(String areacode) {this.areacode = areacode;}public String getCompany() {return company;}public void setCompany(String company) {this.company = company;}public String getCard() {return card;}public void setCard(String card) {this.card = card;}
}

转换:

JSONObject jsonObject=JSONObject.fromObject(json);
Root root=(Root)JSONObject.toBean(jsonObject, Root.class);

使用FastJson进行转换:

 Root<JSON> root=JSONObject.parseObject(json,Root.class);Result result =JSONObject.toJavaObject(root.getResult(),Result.class);

使用GSON进行转换:对于有泛型引入的,需要多写一句话用于获取泛型信息。

 Gson gson=new Gson();Type userType = new TypeToken<Root<Result>>(){}.getType();//用于获取泛型信息Root<Result> root=gson.fromJson(json, userType);Result result=root.getResult();

然后,下面一段json字符串中有数组内容:

String json="{"resultcode":"200","reason":"Return Successd!","result":[{"province":"北京","city":"","areacode":"010",
"zip":"100000","company":"联通","card":""},{"province":"北京","city":"","areacode":"010",
"zip":"100000","company":"联通","card":""}],"error_code":0}"

使用GSON进行转换:

 Gson gson=new Gson();Type userType = new TypeToken<Root<List<Result>>>(){}.getType();Root<List<Result>> root=gson.fromJson(json, userType);List<Result> result=root.getResult();

使用FastJson进行转换:

 Root<JSON> root=JSONObject.parseObject(json,Root.class);List<Result> result =JSONObject.parseArray(root.getResult().toJSONString(),Result.class);

将json数组转换为list对象:

String str="[{"name":"真实服务器","ip":"101.37.168.121","port":5672,"username":"shanghu","password":"GY5P20u1ix9vK8DI","isdemo":false},{"name":"模拟服务器","ip":"101.37.34.221","port":5672,"username":"shanghu","password":"GY5P20u1ix9vK8DI","isdemo":true}]";

使用GSON进行转换:

 Gson gson=new Gson();Service[] array = gson.fromJson(str, Service[].class);List<Service> service=Arrays.asList(array);

使用FastJson进行转换:

List<Service> service=JSONArray.parseArray(str, Service.class);

json数据解析,json数据转为java对象相关推荐

  1. Jackson json转为java对象时遇到不规范的命名规则处理

    今天Android开发的同事问我他在调用服务端接口返回的json数据时,发现对方的json字符串中有没按照驼峰命名的key,结果导致他在用jackson转为java对象的时候,获取不到该key的值,下 ...

  2. python中json模块_Python使用内置json模块解析json格式数据的方法

    本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...

  3. cjson构建_[置顶] cJSON库(构建json与解析json字符串)-c语言

    一.c语言获取json中的数据. 1.先要有cJOSN库,两个文件分别是cJSON.c和cJSON.h. 2.感性认识 char * json = "{ \"json\" ...

  4. Spring拦截器获取request请求体中的json数据,并转换成Java对象的解决办法

    1.要被拦截的Controller接口 我们需要一个更新用户信息接口,请求方式为POST,参数类型为对象类型(UserInfo),代码如下: @Resource private UserService ...

  5. json数据解析(json数据解析 前端)

    JAVA为什么要返回JSON数据?JAVA为什么要返回JSON数? print( String()); 这样在前台页面就可以通过eval(data.List)获取到. 输出 String()就可以看到 ...

  6. android的json数据解析,Android数据解析-JSON解析

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,基于JavaScript(Standard ECMA-262 3rd Edition - December ...

  7. linux下json数据解析,JSON数据解析 - iOS学习笔记_Linux编程_Linux公社-Linux系统门户网站...

    在之前的<iOS学习--xml数据解析(九)>http://www.linuxidc.com/Linux/2014-02/97020p9.htm 介绍了xml数据解析,这一篇简单介绍一下J ...

  8. JSON.parseObject 解析JSON格式数据

    fastjson是阿里巴巴开源产品之一,解析速度快. 下载地址(maven仓库):https://mvnrepository.com/artifact/com.alibaba/fastjson/1.2 ...

  9. Jso对象转化Java对象_Nutz.Json 转为Java对象

    Json字符串转Java对象, 分成几种情况 从目标对象的类型看: 无Pojo类对应 Json.fromJson(source/*来源参数*/) 有Pojo类对应 Json.fromJson(Clas ...

最新文章

  1. 一个有效的OKR是什么样?
  2. BUUCTF-WEB:[强网杯 2019]随便注 1
  3. python爬虫反爬机制_浅谈爬虫及绕过网站反爬取机制之Python深度应用
  4. 音频降噪处理+java_适当的音频捕获和降噪
  5. SAP UI5 Repository and MongoDB Repository
  6. 鼠标手势识别 [Flash]
  7. MKNetwork网络请求过程中onCompletion调用两次的问题
  8. Ember.js 入门指南——路由重定向
  9. 安阳学院有几次计算机考试,安阳:2017年上半年全国计算机等级考试顺利结束...
  10. Tensorflow2下载与安装
  11. VC2005用不惯呀....
  12. 如何收割暑期实习offer
  13. 数据结构与算法分析——第五章、第六章
  14. 服务器系统没法设置分辨率,windows系统分辨率改不了的原因分析及多种解决方法...
  15. Day25 LeetCode 216. 组合总和 III 17. 电话号码的字母组合
  16. Apk 拆包替换文件
  17. CodeForces入门
  18. 服务器遇到一个意外的情况,阻止它完成请求
  19. macbook 备份系统
  20. SCI论文参考文献介绍

热门文章

  1. Beaglebone Black 开发笔记
  2. 简约而不简单的Django教程
  3. 【工业物联网基础】工控安全入门分析
  4. 电脑小知识:装机不求人!10 分钟电脑配置挑选速成攻略
  5. IPV4与IPV6的双栈配置
  6. 高并发系统架构设计之微服务篇19: 微服务拆分
  7. 彩票中奖概率计算过程
  8. (一)redis 5种数据基础查询命令
  9. utorrent 在ubuntu上怎么使用
  10. Jacob、openOffice、aspose、apire几个常用操作word的jar对比