JSON

有效选择七个关于 Java 的 JSON 开源类库(2)

字号+ 作者:H5之家 来源:H5之家 2017-06-22 13:01 我要评论( )

(译者注:DouglasCrockford是Web开发领域最知名的技术权威之一,ECMAJavaScript2.0标准化委员会委员。被JavaScript之父BrendanEich称为JavaScript的大宗师(Yoda)。曾任Yahoo!资深JavaScript架构师,现任PayPal高

(译者注:DouglasCrockford是Web开发领域最知名的技术权威之一,ECMAJavaScript2.0标准化委员会委员。被JavaScript之父BrendanEich称为JavaScript的大宗师(Yoda)。曾任Yahoo!资深JavaScript架构师,现任PayPal高级JavaScript架构师。他是JSON、JSLint、JSMin和ADSafe的创造者,也是名著《JavaScript:TheGoodParts》(中文版《JavaScript语言精粹》)的作者。撰写了许多广为流传、影响深远的技术文章,包括“JavaScript:世界上最被误解的语言”。DouglasCrockford曾在著名的Lucasfilm电影公司任技术总监;在Paramount(派拉蒙)公司任新媒体高级总监;communities社区创始人兼CEO;State软件公司CTO。2012.05.14,Paypal宣布DouglasCrockford加入Paypal。)

同样,让我们来把Java对象转成JSON。

1

2

3

4

5

6

7

8

 

JsonjsonObj=newJson();

JSONObjectjson;

System.out.println("ConvertJavaobjecttoJSONformatandsavetofile");

try(FileWriterwriter=newFileWriter("c:json-lib.json")){

json=JSONObject.fromObject(jsonObj);

json.write(writer);

}catch(IOExceptione){

}

JSON转Java对象

1

2

3

4

5

 

System.out.println("ReadJSONfromfile,convertJSONstringbacktoobject");

try(BufferedReaderreader=newBufferedReader(newFileReader("c:json-lib.json"))){

jsonObj=(Json)JSONObject.toBean(JSONObject.fromObject(reader),Json.class);

}catch(IOExceptionex){

}

这里有个问题,这些依赖关系会影响到性能吗?文章在下面揭晓。

(4)使用Flexjson类库

Flexjson是一个轻量级的库,能序列化和反序列化Java对象和JSON,允许深层和浅层对象的拷贝。深度拷贝意味着一个被Flexjson序列化的对象,它能让对象做到类似于延迟加载(lazy-loading)的技术,能让我们在对对象有需要时才提取。当我们想把整个对象写入到文件时,这不是一个好的情况,但是它知道需要才去做时,这是很好的。

Flexjson下载地址:它不需要其他库就可以工作。下面是例子:Java对象转JSON。

1

2

3

4

5

6

7

 

JsonjsonObj=newJson();

JSONSerializerserializer=newJSONSerializer();

System.out.println("ConvertJavaobjecttoJSONformatandsavetofile");

try(FileWriterwriter=newFileWriter("c:flexjson.json")){

serializer.deepSerialize(jsonObj,writer);

}catch(IOExceptione){

}

JSON转Java对象

1

2

3

4

5

6

 

System.out.println("ReadJSONfromfile,convertJSONstringbacktoobject");

try(BufferedReaderreader=newBufferedReader(newFileReader("c:flexjson.json"))){

jsonObj=newJSONDeserializer<Json>().deserialize(reader);

}catch(FileNotFoundExceptione){

}catch(IOExceptione){

}

简单有效是吧!

(5)使用Json-io类库

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • jQuery选择器中含有空格的使用...

    jQuery选择器中含有空格的使用...

    2017-06-18 15:04

  • 学习使用JMeter进行RESTful API测试的有效技术和最佳实践(2)

    学习使用JMeter进行RESTful API测试的有效技术和最佳实践(2)

    2016-11-12 14:00

  • ecshop软件的商品颜色尺寸属性、仿淘宝选择功能简介

    ecshop软件的商品颜色尺寸属性、仿淘宝选择功能简介

    2015-10-10 12:35

网友点评
i