fastjson 对于json数组字符串的处理

来源:互联网 发布:html js display none 编辑:程序博客网 时间:2024/05/17 04:03

这是我第一次在csdn写博文,如果有表达欠佳的地方,还请大家见谅!

这次撰写博文,主要是想和大家分享一下fastjson对于json数组字符串的一种处理方法。

今天在做项目的时候,对于{"dto":[{"name":"SereneLeong"}]}这种json数组字符串的处理,我一是难以下手。我在转化{"dto":[{"name":"SereneLeong"}]}这种json数组字符串的时候,发现若将其转为JSONObject就无法正确将其最终转为目标的java对象;若将其转为JSONArray对象,则编译器会报错。在网上搜索了一些帖子,大家对于json字符串处理的解决方案要不忽略了这种构造的json字符串的构造方式,要不就通过自定义类的方式来解决这一问题。在万念俱灰的情况下,我不得不静下心来认真的研究一个适用于fastjosn的解决方案。

首先,我先构造了一个javaBean的类,名为DTO.class,类中只有一个私有属性name,针对成员属性name,分别建立了相应的get()方法和set()方法。在建立了一个测试类test.class。在test中建立一个DTO的实例dto,调用set()方法给name赋值为SereneLeong。再建立一个JSONObject的实例json,调用JSONObject的put()方法,把dto推入json,对应键值为dto。从控制台输出后我们可以得到{"dto":[{"name":"SereneLeong"}]}。可以看出json字符串{"dto":[{"name":"SereneLeong"}]}实际上可以转化为JSONObject的对象

之前在浏览网上的一些帖子的时候,我发现可以将[{"name":"SereneLeong"}]这种形式的json字符串转化为JSONArray的对象,这里就不再赘述了。这时,我想要是可以将前面的{"dto":一脚蹿走世界就清静了。其实,结合上一段的叙述,我们知道可以将json字符串{"dto":[{"name":"SereneLeong"}]}转为JSONObject对象。这是[{"name":"SereneLeong"}]相当于是JSONObject对象里的值,而dto就是对应的键。我在通过检索JSONObject的相关方法,发现可以通过JSONObject的getJSONArray()方法,根据对应的键值dto,轻松的构建一个JSONArray对象。接着,只要通过JSONArray的get()或getString()方法,取出对应Object或者String,在通过JSON的toJavaObject()或parseObject方法,完成向对应JavaBean对象的转换即可。具体代码如下:

DTO.class


test.class


输出结果



0 0
原创粉丝点击