当前台需要传送一系列相似数据到后端时,可以考虑将其组装成json数组对象,然后转化为json形式的字符串传输到后台

例如:

            nodes = $('#PmPbsSelect_tree').tree('getChecked');
var data=[];
for(var i=0;i<nodes.length;i++){
if(!isParentCheck(nodes[i],nodes)){
data.push({"id":nodes[i].id,
"pid":node.id});
}else{
data.push({"id":nodes[i].id,
"pid":null});
}
}
dataStr=JSON.stringify(data);
$.ajax({
url:ctx+"/PmWbs/savePmWbsByModel",
type:"POST",
data:{"dataStr":dataStr,
"projectId":pmProjectSelect.combobox('getValue')},
success:function(data){
basetree.tree('reload');
},
error:function(){
alert("请求失败");
},
dataType:"json"
});

接下来阐述正文:(其实是copy其他人的博客,主要放在自己博客下面好找...........................)

==================华丽的分割线=======================================

fastJson对于json格式字符串的解析主要用到了一下三个类:

JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。

JSONObject:fastJson提供的json对象。

JSONArray:fastJson提供json数组对象。

首先定义了三个json格式的字符串作为我们的数据源

//json字符串-简单对象型
private static final String JSON_OBJ_STR = "{\"studentName\":\"lily\",\"studentAge\":12}";
//json字符串-数组类型
private static final String JSON_ARRAY_STR = "[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]";
//复杂格式json字符串
private static final String COMPLEX_JSON_STR = "{\"teacherName\":\"crystall\",
\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},
\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";

一、JSON格式字符串与JSON对象之间的转换。

1.json字符串-简单对象型 与 JSONObject之间的转换

JSONObject jsonObject = JSON.parseObject(JSON_OBJ_STR);
//因为JSONObject继承了JSON,所以这样也是可以的
//JSONObject jsonObject1 = JSONObject.parseObject(JSON_OBJ_STR);

2.json字符串-数组类型与JSONArray之间的转换

JSONArray jsonArray = JSON.parseArray(JSON_ARRAY_STR);
//因为JSONArray继承了JSON,所以这样也是可以的
//JSONArray jsonArray1 = JSONArray.parseArray(JSON_ARRAY_STR); //遍历方式1
int size = jsonArray.size();
for (int i = 0; i < size; i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
} //遍历方式2
for (Object obj : jsonArray) {
JSONObject jsonObject = (JSONObject) obj;
}

3.复杂json格式字符串与JSONObject之间的转换

JSONObject jsonObject = JSON.parseObject(COMPLEX_JSON_STR);
//因为JSONObject继承了JSON,所以这样也是可以的
//JSONObject jsonObject1 = JSONObject.parseObject(COMPLEX_JSON_STR); String teacherName = jsonObject.getString("teacherName");
Integer teacherAge = jsonObject.getInteger("teacherAge");
JSONObject course = jsonObject.getJSONObject("course");
JSONArray students = jsonObject.getJSONArray("students");

此时获取到了json字符串的数组,再对各个字符串进行解析

二、JSON格式字符串与javaBean之间的转换

首先,我们针对数据源所示的字符串,提供三个javaBean。

public class Student {

    private String studentName;
private Integer studentAge; public String getStudentName() {
return studentName;
} public void setStudentName(String studentName) {
this.studentName = studentName;
} public Integer getStudentAge() {
return studentAge;
} public void setStudentAge(Integer studentAge) {
this.studentAge = studentAge;
}
} public class Course { private String courseName;
private Integer code; public String getCourseName() {
return courseName;
} public void setCourseName(String courseName) {
this.courseName = courseName;
} public Integer getCode() {
return code;
} public void setCode(Integer code) {
this.code = code;
}
} public class Teacher { private String teacherName;
private Integer teacherAge;
private Course course;
private List<Student> students; public String getTeacherName() {
return teacherName;
} public void setTeacherName(String teacherName) {
this.teacherName = teacherName;
} public Integer getTeacherAge() {
return teacherAge;
} public void setTeacherAge(Integer teacherAge) {
this.teacherAge = teacherAge;
} public Course getCourse() {
return course;
} public void setCourse(Course course) {
this.course = course;
} public List<Student> getStudents() {
return students;
} public void setStudents(List<Student> students) {
this.students = students;
}
}

json字符串与javaBean之间的转换推荐使用 TypeReference<T> 这个类,使用泛型可以更加清晰,当然也有其它的转换方式,这里就不做探讨了。

1.json字符串-简单对象型与javaBean之间的转换

Student student = JSON.parseObject(JSON_OBJ_STR, new TypeReference<Student>() {});
//因为JSONObject继承了JSON,所以这样也是可以的
//Student student1 = JSONObject.parseObject(JSON_OBJ_STR, new TypeReference<Student>() {});

2.json字符串-数组类型与javaBean之间的转换

ArrayList<Student> students = JSON.parseObject(JSON_ARRAY_STR, new TypeReference<ArrayList<Student>>() {});
//因为JSONArray继承了JSON,所以这样也是可以的
//ArrayList<Student> students1 = JSONArray.parseObject(JSON_ARRAY_STR, new TypeReference<ArrayList<Student>>() {});

FastJson学习:JSON格式字符串、JSON对象及JavaBean之间的相互转换的更多相关文章

  1. FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

    fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...

  2. c# json数据解析——将字符串json格式数据转换成对象

    网络中数据传输经常是xml或者json,现在做的一个项目之前调其他系统接口都是返回的xml格式,刚刚遇到一个返回json格式数据的接口,通过例子由易到难总结一下处理过程,希望能帮到和我一样开始不会的朋 ...

  3. JSON(二)——JavaScript中js对象与JSON格式字符串的相互转换

    首先我们来看一下js中JSON格式的字符串 var JSONStr1 = "{\"name\" : \"张三\"}"; 注意以下的写法不是j ...

  4. c# json数据解析——将字符串json格式数据转换成对象或实体类

    网络中数据传输经常是xml或者json,现在做的一个项目之前调其他系统接口都是返回的xml格式,刚刚遇到一个返回json格式数据的接口,通过例子由易到难总结一下处理过程,希望能帮到和我一样开始不会的朋 ...

  5. 小白学习Spark系列五:scala解析多级json格式字符串

    一.背景 处理json格式的字符串,key值一定为String类型,但value不确定是什么类型,也可能嵌套json字符串,以下是使用 JSON.parseFull 来解析多层json. 二.实例代码 ...

  6. WebApi返回Json格式字符串

    WebApi返回json格式字符串, 在网上能找到好几种方法, 其中有三种普遍的方法, 但是感觉都不怎么好. 先贴一下, 网上给的常用方法吧. 方法一:(改配置法) 找到Global.asax文件,在 ...

  7. json格式字符串与java.util.Map的互转(借助于jackson.jar)

    package com.test.javaAPI.json; /** * json工具类 * * @author Wei * @time 2016年10月2日 下午4:25:25 */ public ...

  8. (转)WebApi返回Json格式字符串

    原文地址:https://www.cnblogs.com/elvinle/p/6252065.html WebApi返回json格式字符串, 在网上能找到好几种方法, 其中有三种普遍的方法, 但是感觉 ...

  9. 关于json格式字符串解析并用mybatis存入数据库

    园子里面找了很多关于json解析后存入数据库的方法,不是太乱,就是没有写完,我下面的主题代码多是受下面两位的启发,请按顺序查看 http://www.cnblogs.com/tian830937/p/ ...

随机推荐

  1. LC 986. Interval List Intersections

    Given two lists of closed intervals, each list of intervals is pairwise disjoint and in sorted order ...

  2. OpenNESS,开源的边缘网络服务平台

    目录 文章目录 目录 参考文章 OpenNESS 的电梯间演讲 OpenNESS 与 ETSI MEC Edge Controller Software 的功能清单 Edge Platform Sof ...

  3. html+大文件上传

    前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践. ...

  4. idea控制台中文乱码“淇℃伅”

    方法一:找到tomcat的conf目录下的logging.properties,将输出到控制台的编码改为GBK java.util.logging.ConsoleHandler.encoding = ...

  5. HBase管理与监控——Dead Region Servers

    [问题描述] 在持续批量写入HBase的情况下,出现了Dead Region Servers的情况.集群会把dead掉节点上的region自动分发到另外2个节点上,集群还能继续运行,只是少了1个节点. ...

  6. jenkins容器内修改root密码--ubuntu系统

    http://www.voidcn.com/article/p-yvnoogkc-ng.html 由于jenkins官方镜像是ubuntu系统,所有啥的都用 sudo 换到root账号,然后登陆har ...

  7. [转]Maven项目读取src.main.resources下的文件

    要取编译后的路径,而不是你看到的src/main/resources的路径.如下: URL url = MyTest.class.getClassLoader().getResource(" ...

  8. 工作采坑札记: 4. linux指定目录使用df和du的统计结果相差很大

    1. 背景 近日,线上的服务出现异常,调用服务返回的JSON格式数据不完整,导致客户端解析异常,因此记录了本次的填坑之旅(nnd)... 2. 排查过程 2.1 服务器分析 登录到服务所在linux服 ...

  9. modbus4j中使用modbus tcp/ip和modbus rtu over tcp/ip模式

    通过借鉴高人博客,总结如下: 1. TcpMaster类,用于生成ModbusMaster主类 package sun.sunboat; public class TcpMaster { privat ...

  10. 《精通并发与Netty》学习笔记(08 - netty4+springboot项目案例)

    本节通过案例介绍springboot与netty的集成 第一步:新建Spring Initializr 项目 我这里选择Gradle项目,也可选择Maven项目 (注意:最好选择自己下载gradle, ...