SON官网:官网地址 (各种编程语言对应的工具应有尽有,前提能读英文)
json: json为前端后端以及网络传输的数据交换格式,可以通过它来表示各种各样复杂的数据,如对象,数组,集合,以及集合的集合等数据。
以下不讲概念问题,只介绍代码如何实现。
前端(js):
json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键,下面将介绍两者之间的相互转换。
- json字符串:var str1 = '{ "name": "zyy", "sex": "man" }';//最外面包含了一对单引号
- 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();
- }
- }
- }
最后:以上只是简单的一些功能,当然类库中还有很多其他的一些功能,想要深入,自行去查阅吧,哈哈! 喝杯茶去!
相关推荐
2. JSON与Java对象的转换:Android中,`org.json`库提供了`JSONObject`和`JSONArray`类,用于将JSON字符串转换为Java对象,反之亦然。例如: ```java String jsonString = "{\"name\":\"张三\",\"age\":30}"; ...
- Newtonsoft.Json:这是一个功能更丰富且被广泛使用的库,提供了一系列方便的方法,如JsonConvert.DeserializeObject和JsonConvert.SerializeObject,用于对象与JSON字符串之间的转换。 3. JSON序列化: 序列化...
将js对象转换成json格式的数据的字符串,方便后台进行转换处理
在Java中,`json-lib`是一个非常实用的库,它提供了将Java对象转换为JSON字符串,以及将JSON字符串反序列化为Java对象的能力。本文将深入探讨如何使用`json-lib`来处理自定义复杂类型的转换,以便更有效地在后台和...
这样的库将Java对象转换为JSON时,如果不做特殊处理,JSON字符串中的日期可能不会以我们期望的“年-月-日 时:分:秒”格式呈现,而是默认的日期时间格式,这可能对前端展示造成困扰。 下面是一个简单的例子来说明这...
在JavaScript中,经常需要将JSON字符串转换为JSON对象,以便能够操作和处理这些数据。然而,在这个过程中,可能会遇到一些转义问题,特别是在涉及到特殊字符时。本文将深入探讨JavaScript中JSON字符串到JSON对象的...
一、前台 // 转换成对象 var myObject = JSON.parse(_data); alert(...//把json格式的字符串转成JSON对象 var json1 = '{department: 中兵,address: 北京,contacts: 李硕,telphone: 1520127466
页面向后台action传递一个json字符串,需要将json字符串转换成Map对象 public Map<String> toMap(Object object) { Map<String> data = new HashMap(); // 将json字符串转换成jsonObject JSONObject jsonObject...
例如,JsonUtil工具类提供了getObject4JsonString方法,可以将JSON字符串转换为Java对象。 ```java public static Object getObject4JsonString(String jsonString, Class pojoClass) { JSONObject jsonObject = ...
这个主要是运用在ajax里面向服务器传送复杂格式的json,如何在后台进行转化,很好用!
在"多层集合的JSON串拼接"这个主题中,我们主要关注的是如何将多个JSON对象或数组合并成一个复杂结构的JSON字符串。这通常涉及到后台Java的处理和前台JavaScript的调用。以下是一些关键知识点: 1. **JSON对象与...
最近做一款app,这几天跟后台调试数据通信,网上搜的工具类大多是直接传的Map,我们后台只认得到Json字符串,没办法,自己动手封装了一个工具类,里面只封装了post方法。成功跟后台实现通信,亲测可用,代码里面的...
在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,这样后台 接受的时候Request多个很麻烦,此时要按照类的格式或者 ...
json字符串很有用,有时候一些后台接口返回的信息是字符串格式的,可读性很差,这个时候要是有个可以格式化并高亮显示json串的方法那就好多了,下面看看一个正则表达式完成的json字符串的格式化与高亮显示 ...
JSON(JavaScript Object Notation)是一种轻量级的...后台通过框架或库(如json-lib)将接收到的JSON字符串解析成可操作的对象。在处理过程中,需要考虑兼容性、错误处理和数据验证,确保数据准确无误地传输和解析。
4. JSON字符串与JSON对象的转换:在JavaScript中,我们可以使用`JSON.stringify()`方法将JavaScript对象转换成JSON字符串,以便通过Ajax发送;而`JSON.parse()`方法则用于将接收到的JSON字符串解析成JavaScript对象...
Gson是Google提供的一款强大的Java库,它能将Java对象转换为JSON字符串,反之也能将JSON数据转换回Java对象。本篇文章将深入探讨如何使用Gson库来实现Java后台List类型数据向JSON的转换。 首先,我们需要了解Gson的...
1. 前后台数据交换:在Web应用中,服务器通常会以JSON格式返回数据给前端,前端通过JavaScript的内置函数`JSON.parse()`将JSON字符串转化为JavaScript对象,便于操作和展示。例如: ```javascript let jsonString = ...
json字符串很有用,有时候一些后台接口返回的信息是字符串格式的,可读性很差,这个时候要是有个可以格式化并高亮显示json串的方法那就好多了,下面看看一个正则表达式完成的json字符串的格式化与高亮显示 ...
在本篇文章中,我们讨论了在将JSON字符串从前端传到后台PHP处理时可能遇到的问题及其解决方法。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。由于...