JSON

json处理总结(前端js和后端java)

字号+ 作者:H5之家 来源:H5之家 2015-11-25 09:22 我要评论( )

JSON官网:官网地址?(各种编程语言对应的工具应有尽有,前提能读英文)?json:?json为前端后端以及网络传输的数据交换格式,可以通过它来表示各? ...

标签:java   json   js      

?JSON官网:官网地址?(各种编程语言对应的工具应有尽有,前提能读英文)

?

json:?json为前端后端以及网络传输的数据交换格式,可以通过它来表示各种各样复杂的数据,如对象,数组,集合,以及集合的集合等数据。

?

以下不讲概念问题,只介绍代码如何实现。?

?

?

前端(js):

? ? ? ? ? ? ? json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键,下面将介绍两者之间的相互转换。

?

json字符串:var str1 = ‘{ "name": "zyy", "sex": "man" }‘;//最外面包含了一对单引号 json对象: var str2 = { "name": "zyy", "sex": "man" }; //严格的json组成格式 1.json字符串-->json对象(四种方式) ? ? ? 1.使用原生的js函数进行解析 var obj = eval(‘(‘ + str1 + ‘)‘);

? ? ? ?2.使用jquery插件提供的工具进行解析

var obj = $.parseJSON( str1 );

? ? ? ?3.使用js原生的JSON对象进行解析(此种方式会出现低版本浏览器<=IE8不兼容问题,不推荐,具体参见)

var obj = JSON.parse(str1);

? ? ? ?4.使用JSON官网上提供的json2.js类库对象进行解析 (官网地址?下载json2.js地址),ps:记得引入该文件哦,嘿嘿

var obj = JSON.parse(str1);

? ? ? ? ?注意:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。

2.json对象 --> json字符串 ? ? ?1.使用JSON官网上提供的json2.js类库对象进行解析 var str = JSON.stringify(str2); ? ? ?2.使用js原生的方法(兼容性和上面的3一样) var str = str2.toJSONString();

?

?

?

?

?---------------------------------------------------分割线--------------------------------------------------------------------

?

?

?后端(java)

?

?java提供的处理json的类库比较多,类库都是提供了一些对java对象(内含集合、对象、数组等复杂数据类型)或者数组的序列化和反序列换的功能。常用的一些类库如下:

1.org.json ???源码下载? ? ?官网地址(含API)

2.fastjson(国产)?

3.json-lib

4.jackson

5.Gson

此处是常用类库性能比较?

注:序列化(对象-->json字符串) ? ? ?反序列化(json字符串-->对象)

?

由于大多数类库的功能都差不多,所以只介绍fastjson这一种

?

?

以下是几个基本的bean类型

?

student类:

?

?

public class Student { private int studentId; private String username; private int age; private String sex; //省略setter /getter方法 }

?

Class类

?

public class Class { private int classId; private Set<Student> students; //上面的Student类集合 //省略setter和getter方法 }

?

School类

public class School { private int schoolId; private Set<Class> classes; //上面的class对象集合 //省略setter和getter方法 }

?

测试代码

public class FastjsonTest { public static void main(String[] args) { //构造学生对象 Student stu1 = new Student(); stu1.setStudentId(1); stu1.setUsername("张三"); Student stu2 = new Student(); stu2.setStudentId(2); stu2.setUsername("李四"); //构造class对象 Class class1 = new Class(); Set<Student> sets = new HashSet<Student>(); sets.add(stu2); sets.add(stu1); class1.setClassId(7); class1.setStudents(sets); //构造学校 School school = new School(); Set<Class> sets1 = new HashSet<Class>(); sets1.add(class1); school.setSchoolId(2014); school.setClasses(sets1); String jsonString = JSONObject.toJSONString(school); //序列化 System.out.println(jsonString); System.out.println("-----------------------------"); School school2 = JSONObject.parseObject(jsonString, School.class); //反序列化 Iterator<Class> set = school2.getClasses().iterator(); while(set.hasNext()){ Class class2 = set.next(); System.out.println("classId=" + class2.getClassId() + " "); Iterator<Student> sIterator = class2.getStudents().iterator(); while(sIterator.hasNext()){ Student student = sIterator.next(); System.out.println( " \t" + "studentId="+ student.getStudentId() + ",username=" + student.getUsername()); } System.out.println(); } } }

?

?

?

?

?最后:以上只是简单的一些功能,当然类库中还有很多其他的一些功能,想要深入,自行去查阅吧,哈哈! 喝杯茶去!

?

?

?

?

?

?

?

?

?

?

?

?

json处理总结(前端js和后端java)

标签:java   json   js      

 

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

相关文章
  • Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别

    Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别

    2016-01-18 17:28

  • 正则表达式优化JSON字符串的技巧

    正则表达式优化JSON字符串的技巧

    2016-01-18 09:06

  • Linux学习笔记:MySQL字符集

    Linux学习笔记:MySQL字符集

    2016-01-17 18:24

  • PHP学习之字符串比较和查找

    PHP学习之字符串比较和查找

    2016-01-17 18:23

网友点评