复杂类型json如何转化
程序员文章站
2022-12-09 09:28:23
关于json简单的开发场景大家都会用,但是如果涉及到复杂类型的json转化如何操作呢? 之前在开发的业务场景中遇到需要在代码块中对如下形式的数据进行处理 [ { "id": "9", "attachments": { "key1": { "download_url": "7955ca8e97dc21 ......
关于json简单的开发场景大家都会用,但是如果涉及到复杂类型的json转化如何操作呢?
之前在开发的业务场景中遇到需要在代码块中对如下形式的数据进行处理
[ { "id": "9", "attachments": { "key1": { "download_url": "7955ca8e97dc219f9dda0b8102540247f48675ca", "filename": "logo.png" } } }, { "id": "10", "attachments": { "key2": { "download_url": "7955ca8e97dc219f9dda0b8102540247f48675ca", "filename": "logo2.png" } } }, { "id": "13", "attachments": [] } ]
很容易看出来,以上的数据是个数组类型。他的 attachments元素看起来就很奇怪了,看形式应该是个map,但是接收的时候我将 attachments 定义成object元素接收过来,排除空的情况,剩下的的使用map的类型接收 我将他书写成
我先定义了一个对象,如下:
public class fileeo{ private string download_url; private string filename; }
然后书写定义map hashmap<string,fileeo> 但是在直接作为对象转化的时候转化不成功,一直报错,经过一番查找发现
json对于复杂类型的转化需要先定义type,解决方案如下:
/** * 复杂类型的json转化需要先定义type 然后再进行转化 */ public static type definetype() { return new typereference<map<string, object>>() { }.gettype(); } public static void main(string[] args) { /* 这里简单写一个demo书写使用形式 在工作中偶然遇到了这种形式的 实际情况比这种更复杂一点 map中是一个对象,用普通的封装之后去解析会报错*/ string str = " {\"money\":\"100.00\",\"paymethod\":\"alipay\"}"; type type = definetype(); map<string, object> map = json.parseobject(str, type); system.out.println(map.get("money")); system.out.println(map.get("paymethod")); }
之前没有了解过复杂类型的json转化,这里遇到了,标记一下。
下一篇: 分库分表之第一篇
推荐阅读
-
不同实体转json教程:通过Gson把json转化为不同类型的实体
-
复杂类型json如何转化
-
第二章 如何利用Python读取Oracle表数据和表头转化为字典类型
-
postman做接口测试,body穿json格式的参数,json中的参数值是list类型,且列表项是图片时如何传参
-
jeefast--框架报错:JSON转化Date类型格式
-
json-lib 中 Date 类型的 转化为 json
-
json字符串转化为对象集合(包含Date类型字段处理)
-
源码分析系列之json_encode()如何转化一个对象
-
Java中如何正确的将byte[]数组转化为String类型?
-
Oracle解析复杂类型json的实例分享