工具:fastjson1.2.9
用其他工具也行,比如json-lib、gson
用法都差不多
先来一段json
{
"page": {
"pagenow": "1",
"pagesize": "20"
},
"file": {
"name": "jpg"
},
"catalogs": [
{
"id": "1"
},
{
"id": "2"
}
]
}

这个json里面有对象也有数组

JSON—javabean

思路:

先得到JSONObject

然后用getString(key)拿到要解析的JSON片段

然后用JSON.parseObject(要解析的JSON片段,class)得到javabean

		String json="{\"page\":{\"pagenow\":\"1\",\"pagesize\":\"20\"},\"file\":{\"name\":\"jpg\"},\"catalogs\":[{\"id\":\"1\"},{\"id\":\"2\"}]}";
JSONObject obj=JSON.parseObject(json);
Page page=JSON.parseObject(obj.getString("page"),Page.class);

JSON—List<bean>

思路:

先得到JSONObject

然后用getString(key)拿到要解析的JSON片段

然后用JSON.parseArray(要解析的JSON片段,class)得到List<javabean>

		String json="{\"page\":{\"pagenow\":\"1\",\"pagesize\":\"20\"},\"file\":{\"name\":\"jpg\"},\"catalogs\":[{\"id\":\"1\"},{\"id\":\"2\"}]}";
JSONObject obj=JSON.parseObject(json);
List catalogList=JSON.parseArray(obj.getString("catalogs"), Catalog.class);//得到List
Catalog[] catalogArr=catalogList==null?null:catalogList.toArray(new Catalog[0]);//得到Catalog[]

注意

1.javabean必须有空参数的构造器

2.javabean的属性要有setter方法

查看原文:http://139.129.55.235/2016/05/31/%e6%8a%8a%e5%a4%8d%e6%9d%82json%e8%a7%a3%e6%9e%90%e6%88%90javabean/

把复杂json解析成javabean的更多相关文章

  1. C# 将 Json 解析成 DateTable

    #region 将 Json 解析成 DateTable /// /// 将 Json 解析成 DateTable. /// Json 数据格式如: /// {table:[{column1:1,co ...

  2. SpringMVC将通过ajax发送的 json数据封装成JavaBean

    SpringMVC将通过ajax发送的 json数据封装成JavaBean 通过ajax发送的 json数据封装成JavaBean对发送时有如下要求: 1.发送的数据类型必须时UTF-8 2.发送的必 ...

  3. FastJson将json解析成含有泛型对象,内部泛型对象再次解析出错的解决办法(Android)

    折腾小半天的问题,这里先感谢一下深圳的小伙子,远程帮我搞,虽然也没有搞出来==========FUCK 声明:Android开发下发生此异常,Java开发下并不会有这个问题 异常重现 简单说一下抛出异 ...

  4. c#将前端传来的Json解析成对象

    描述:因工作中需要将C#中的Json字符串转换为对象,对此记录下. 解决办法: 1.前端传过来的Json字符串,OrderAppModuleJson即前端传递到后端的Json字符串 string st ...

  5. python小练--使用正则表达式将json解析成dict

    练习python语法,自己实现了一个简单的解析json字符,存为dict字典对象. { "id":12, "name":"jack", &q ...

  6. JSONHelp json解析成类,类解析成string

    using System; using System.Collections.Generic; using System.IO; using System.Runtime.Serialization. ...

  7. java中常见的json解析方法、库以及性能对比

    常见的json解析有原生的JSONObject和JSONArray方法,谷歌的GSON库,阿里的fastjson,还有jackson,json-lib. Gson(项目地址:https://githu ...

  8. 通俗易懂的 JSon解析处理

    1.主要用到的类: 主要用到了JavaScriptSerializer类,该类在System.Web.Script.Serialization命名空间(在System.Web.Extensions.d ...

  9. 将JSON转成DataSet(DataTable)

    方法1: /// <summary> /// 将JSON解析成DataSet只限标准的JSON数据 /// 例如:Json={t1:[{name:'数据name',type:'数据type ...

随机推荐

  1. mysql基础知识扫盲

    本篇主要介绍关于mysql的一些非常基础的知识,为后面的sql优化做准备. 一:连接mysql 关于mysql的下载和安装我在这里就不说了,第一步我们要连接我们的mysql服务器,打开cmd命令切换到 ...

  2. CentOS安装运行NodeJS框架Express

    安装依赖包 yum -y install gcc make gcc-c++ openssl-devel wget 下载/解压NodeJs wget http://nodejs.org/dist/v0. ...

  3. Java 集合系列目录(Category)

    下面是最近总结的Java集合(JDK1.6.0_45)相关文章的目录. 01. Java 集合系列01之 总体框架 02. Java 集合系列02之 Collection架构 03. Java 集合系 ...

  4. Android Studio项目转Eclipse项目

    Android Studio项目的目录结构和Eclipse项目不同.如何转换? 以FloatingAction 项目为例:实现向上滑动隐藏悬浮按钮,向上滑动显示悬浮按钮. GitHub 地址:http ...

  5. Bootflat – 基于 Bootstrap CSS 框架的扁平化界面

    Bootflat 是一个开源的扁平化的 UI 工具包,基于 Bootstrap 3.1.0 CSS 框架.它为 Web 开发人员提供了一个创建优雅的 Web 应用程序的更快,更容易和更少的重复任务的途 ...

  6. 判断js数据类型和clone

    判断返回js数据类型 function judgeType(arg){//判断返回js数据类型 return Object.prototype.toString.call(arg).slice(8,- ...

  7. 对于MVC中应用百度富文本编辑器问题的解决办法

    1.对于应用富文本编辑器post提交表单内容提示有危险的解决办法: [ValidateInput(false)] //文本编辑器的表单提交不用提示危险 [HttpPost] public Action ...

  8. [Logstash-input-redis] 使用详解

    redis插件的完整配置 input { redis { batch_count => 1 #返回的事件数量,此属性仅在list模式下起作用. data_type => "lis ...

  9. 使用CSS3对链接颜色与下划线进行优化

    效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  10. 【转载】8天学通MongoDB——第四天 索引操作

    这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅. 好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们 又 ...