gson解析json

JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格

偶尔善良 提交于 2019-12-03 21:29:25
JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 Java是面向对象的语言,所以我们更多的在项目中是以对象的形式处理业务的,但是在传输的时候我们却要将对象转换为 JSON 格式便于传输,而且 JSON 格式一般能解析为大多数的对象格式,而不在乎编程语言。 现在主流的对象与 JSON 互转的工具很多,我们主要介绍今天的主角,阿里巴巴的开源库 - Fastjson。Fastjson是一个Java库,可用于将Java对象转换为其JSON表示。它还可用于将JSON字符串转换为等效的Java对象。Fastjson可以处理任意Java对象,包括您没有源代码的预先存在的对象。 1 | 0 什么是 Fastjson? 阿里官方给的定义是, fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。 2 | 0 Fastjson 的优点 速度快 fastjson相对其他JSON库的特点是快,从2011年fastjson发布1.1

浅谈JSONObject解析JSON数据

一笑奈何 提交于 2019-12-03 14:08:22
原文地址:https://segmentfault.com/a/1190000015363286?utm_source=tag-newest 根据一段天气API来说一下JSONObject如何解析json数据,尽管现在在开发中使用Gson等,对于像我这样初次使用Java做开发的小白,说一下也是好的。 JSON数据 选取这段json数据是因为这段数据还是比较复杂的,能涵盖要说的关键点 { "data": { "city": "深圳", "temphigh": "25", "templow": "19", "updatetime": "2017-11-04 13:23:00", "tempnow": "24", "sendibletemp": "27", "winddirect": "东北风", "windpower": "2级", "humidity": "42", "sunrise": "06:29", "sunset": "17:45", "weather": "多云", "week": "星期六", "nl": null, "date": "2017-11-04", "index": [ { "name": "化妆指数", "level": "控油", "msg": "建议用露质面霜打底,水质无油粉底霜,透明粉饼,粉质胭脂。" }, { "name": "感冒指数",

复杂json的转换

匿名 (未验证) 提交于 2019-12-03 00:37:01
{" menus ": [{" key ": "测试1" ," type ": "Channel" ," owner ": "" ," title ": "标题1" ," fav ": "false" ," lineSelect ": "false" ," chartSelect ": "false" },{" key ": "测试2" ," type ": "Channel" ," owner ": "" ," title ": "标题2" ," fav ": "false" ," lineSelect ": "false" ," chartSelect ": "false" },{" key ": "测试3" ," type ": "Channel" ," owner ": "" ," index ": "1" ," title ": "标题3" ," fav ": "false" ," lineSelect ": "false" ," chartSelect ": "false" }] } 以上是一个复杂json串,其中menus作为key的值又是一个json数组,我们首先考虑将menus和后面的值分开,采用Map接收;后面的json数组采用List接收;再往里边的json串用Map或实体类接收。 综上分析,代码实现为: import com.google.gson.Gson

SpringMVC中JSON数据交互

匿名 (未验证) 提交于 2019-12-03 00:10:02
JSON数据交互 响应JSON数据 添加依赖: 对于Gson和jackson这两个json处理依赖,直接添加即可。 除此之外,其他的json解析器如fastjson都需要手动配置HttpMessageConverter. 实际上,在SpringMVC中,是由一个名叫HttpMessageConverter的类来提供对象到JSON字符串的转换的。而SpringMVC默认就提供了Gson和Jackson的 HttpMessageConverter ,分别是org.springframework.http.converter.json.GsonHttpMessageConverter和MappingJackson2HttpMessageConverter。对于其他的JSON解析器,只需要开发者手动配置一下HttpMessageConverter即可。 本案例使用 jackson处理 Maven坐标 < dependency > < groupId > com.fasterxml.jackson.core </ groupId > < artifactId > jackson-core </ artifactId > < version > 2.5.2 </ version > </ dependency > < dependency > < groupId > com.fasterxml

ajax与json

匿名 (未验证) 提交于 2019-12-02 23:53:01
$.ajax({ async:true, type:"post", url:"xxxServlet", data:{"account":"jack","pwd":"123"}, success:function(data){ //dowork }, //error:function(){alert("error!");}, dataType:"json" }); 注:指定dataType为json时,不要用var obj = eval("("+data+")");去再次解析,会报错 1.json对象 {key:value,key:value} {"name":"jack","sex":"男","age":"25"} 2.json数组或集合格式 [{key:value,key:value},{key:value,key:value}] [{"name":"jack","sex":"男","age":"25"}, {"name":"tom","sex":"男","age":"26"}] 3.json对象,数组嵌套 { "param":[{key:value,key:value},{key:value,key:value}] } { "param1":[{key:value,key:value},{key:value,key:value}], "param2":[{key:value

JSON简单的代码实例

陌路散爱 提交于 2019-12-02 17:22:27
JSON简单代码基本实例: 本代码运行环境为eclipse的Maven项目下。 1.先简单介绍一下json 一种与开发语言无关的轻量级的数据格式。优点:易读和编写,易于程序解析与生产 2.标准的json数据表示 <1>数据结构 object: 使用花括号包含的键值对结构,key必须是string类型, value可以为任何基本类型或数据结构 Array: 使用中括号[]来起始,并用逗号,来分隔元素; <2>数据类型 String number true/false null 代码块 json文件示例: json文件: { "name" : "王小二" , "age" : 25.2 , "birthday" : "1990-01-01" , "school" : "蓝翔" , "major(技能)" :[ "理发" , "挖掘机" ], "has_girlfriend" : false , "car" : null , "house" : null , "comment" : "这是一个注释" } 生成json数据的三种方式 方法 具体操作 JSONObject对象 通过对象.方法,以键值对的形式传入参数(对象.put(key,value);)。 Map集合 Map集合对象的数据本身为key-value。将Map对象传入JSONObject.fromObject()方法中。

JSON三种数据解析方法

你说的曾经没有我的故事 提交于 2019-12-02 17:20:43
引言 JSON数据现在是我们开发中用的最多的,百分之八十的数据都是通过JSON方式进行传输,那么想要学好JSON解析就要了解什么是JSON数据,怎么快速解析它从而提升开发效率。 什么是JSON数据? 下面这里有一段JSON数据,我们根据这段数进行讲解: { "paramz": { "feeds": [ { "id": 299080, "oid": 288342, "category": "article", "data": { "subject": "视频直播:习近平马英九会面", "summary": "两岸领导人习近平、马英九在新加坡会面", "cover": "/Attachs/Article/288342/56a263bcab4a4c55b0bef0528ce880b6_padmini.JPG", "pic": "", "format": "video", "changed": "2015-11-07 14:35:22" } }, { "id": 299076, "oid": 288340, "category": "article", "data": { "subject": "荔枝新闻3.0:不止是阅读", "summary": "江苏广电旗下资讯类手机应用“荔枝新闻”于近期推出全新升级换代的3.0版。", "cover": "/Attachs/Article

Fastjson致命缺陷

笑着哭i 提交于 2019-12-02 14:42:02
前言 这个周末被几个技术博主的同一篇公众号文章 fastjson又被发现漏洞,这次危害可导致服务瘫痪! 刷屏,离之前的漏洞事件没多久,FastJson 又出现严重 Bug。目前项目中不少使用了 FastJson 做对象与JSON数据的转换,又需要更新版本重新部署,可以说是费时费力。与此同时,也带给我新的思考,面对大量功能强大的开源库,我们不能盲目地引入到项目之中,众多开源框架中任一个不稳定因素就足以让一个项目遭受灭顶之灾。趁着周末,在家学习下同样具备对象JSON相互转换功能的优秀开源框架 Gson,并且打算将今后项目使用 FastJson 的地方逐渐换成使用 Gson,记录下学习总结的内容,希望对小伙伴也有所帮助。 本文所涉及所有代码片段均在下面仓库中,感兴趣的小伙伴欢迎参考学习: https : / / github . com / wrcj12138aaa / gson - actions 版本支持: - JDK 8 - gson 2.8 .5 - junit 5.5 .1 - Lomok 1.18 .8 Gson 简介 在正式介绍 Gson 之前,我们可以先从官方的wiki看下 Gson 的描述,了解它是什么? Gson is a Java library that can be used to convert Java Objects into their JSON

json解析:[2]fastjson 使用

一笑奈何 提交于 2019-12-02 05:25:35
利用阿里的fastjson包对对象进行 json的转化与解析,本篇为第二篇,第一篇讲述的是利用gson进行json数据解析,地址:jingyan.baidu.com/article/e8cdb32b619f8437042bad53.html 常用类型 类型一:JavaBean 类型二:List<JavaBean> 类型三:List<String> 类型四:List<Map<String,Object>> 将上面的四种数据对象转换成json字符串的方法都是一样的 String jsonString = JSON.toJSONString(obj); 工具/原料 fastjson.jar下载地址 pan.baidu.com/s/1i3ysuaD 方法/步骤 1 将json字符串转化成JavaBean对象 Person person = new Person("1","fastjson",1); //这里将javabean转化成json字符串 String jsonString = JSON.toJSONString(person); //这里将json字符串转化成javabean对象, person =JSON.parseObject(jsonString,Person.class); 2 将json字符串转化成List<JavaBean>对象 Person person1 = new

Json的解析方式

天涯浪子 提交于 2019-12-02 05:01:34
一、JSON官方提供的解析 1、相关依赖 <!-- JSONObject的依赖 --> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.2.3</version> <classifier>jdk15</classifier><!--必须设置JDK版本,不然依赖会出错--> </dependency> 2、在类中导包 import net.sf.json.JSONArray; import net.sf.json.JSONObject; 3、将Json格式的String字符串转换为JSONObject对象( JSONObject对象可以直接赋值到Map<String,Object> ) String json1 = "{'id':1,'name':'this is a testDemo','stus':[{'id':101,'name':'zhangsan','age':16},{'id':102,'name':'lisi','age':23}]}"; String json2 = "['北京','天津','杭州']"; //JSONObject jsonObject = JSONObject.fromObject(json2);/