java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换

java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换1.JSON的String字符串与Java的List列表对象的相互转换在前端:1.如果json是List对象转换的,可以直接遍历json,读取数据。2.如果是需要把前端的List对象转换为json传到后台,param是ajax的参数,那么转换如下所示:varjsonStr=JSON.stringify(list);varparam={};param.jsonStr=jsonStr;在后台…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1.JSON的String字符串与Java的List列表对象的相互转换

在前端:

1.如果json是List对象转换的,可以直接遍历json,读取数据。

2.如果是需要把前端的List对象转换为json传到后台,param是ajax的参数,那么转换如下所示:

var jsonStr = JSON.stringify(list);

var param= {};

param.jsonStr=jsonStr;

在后台:

import net.sf.json.JSONObject;

import net.sf.json.JSONArray;

1.把String转换为List(str转换为list)

List list = new ArrayList();

JSONArray jsonArray = JSONArray.fromObject(str);//把String转换为json

list = JSONArray.toList(jsonArray,t);//这里的t是Class

在这里,因为得到json字符串的时候用的是 JSONArray.fromObject(collenction),所有,在讲json字符串转换成json对象的时候,

也只能用JSONArray.toCollection,并且,一定要带上后面的class参数。

2.把List转换为json

JSONArray json = JSONArray.fromObject(object);

String str = json.toString();//把json转换为String

再如:

Teacher类中,有三个属性。

private String teaId;

private String teaName;

private List stus;

Teacher teacher_1 = new Teacher(“编号1”, “教师1”, stus);

JSONObject obj = JSONObject.fromObject(teacher_1);

这一步,将Teacher 对象转换成json字符串的时候,没有任何的问题。下面,将JSONObject 转换成Teacher 对象,如果,不加后面的class参数,也会报这儿错误。加了后,这一步也正常。

Teacher teacherBean = (Teacher) JSONObject.toBean(obj, Teacher.class);

Student studentBean = teacherBean.getStus().get(0);

当从teacherBean 对象中取出stus属性的值时候,就会提示:

Java.lang.ClassCastException:net.sf.ezmorph.bean.MorphDynaBean cannot be cast to com.edu.xukai.Student

用这种方式可以解决:

Map classMap = new HashMap();

classMap.put(“stus”, Student.class);

Teacher teacherBean = (Teacher) JSONObject.toBean(obj, Teacher.class, classMap);

其中map对象是teacherBean对象中各个属性的类型,map额key是属性每次,value是属性的类型。

JSONArray.toArray(jsonArray, objectClass, classMap)

JSONArray.toList(jsonArray, objectClass, classMap)

也支持这样的方式。

2. JSON 集合数据字符串转对象集合 及 对象集合转 JSON 字符串

import org.codehaus.jackson.JsonParseException;

import org.codehaus.jackson.map.JsonMappingException;

import org.codehaus.jackson.map.ObjectMapper;

import org.codehaus.jackson.type.TypeReference;

// 集合转 json

ArrayList list=new ArrayList();

StringWriter str=new StringWriter();

ObjectMapper objectMapper=new ObjectMapper();

objectMapper.writeValue(str, list);

System.out.println(str);

// json 转对象集合

ObjectMapper mapper = new ObjectMapper();

List list = mapper.readValue(str.toString(),

new TypeReference>() {});

3.示例

public static void main(String[] args) {

ArrayList list=new ArrayList();

Student s1=new Student();

s1.setName(“leilei”);

s1.setAge(23);

Student s2=new Student();

s2.setName(“leilei02”);

s2.setAge(23);

list.add(s1);

list.add(s2);

StringWriter str=new StringWriter();

ObjectMapper objectMapper=new ObjectMapper();

try {

objectMapper.writeValue(str, list);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println(str);

}

public class JsonToJavaBean {

public static void main(String[] args) {

String str=”{\”student\”:[{\”name\”:\”leilei\”,\”age\”:23},{\”name\”:\”leilei02\”,\”age\”:23}]}”;

Student stu = null;

List list = null;

try {

ObjectMapper objectMapper=new ObjectMapper();

StudentList studentList=objectMapper.readValue(str, StudentList.class);

list=studentList.getStudent();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

for(Student s:list){

System.out.println(s.getName()+” “+s.getAge());

}

}

}

JSon_零基础_006_将JSon格式的字符串转换为Java对象

需求: 将JSon格式的字符串转换为Java对象. 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“name.values”集合, 通过get(key …

JS中JSON和string字符串相互转换

在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法. JSON.stringify(obj)将JSO …

java 8中列表对象多条件排序

java 8 新加了 lambda 表达式,当接口是一个 @FunctionalInterface 时可以使用 lambda 表达式代替 Function典型的应用场景为:A. 1个只有1个方法的接口 …

解决fasterxml中string字符串转对象json格式错误问题

软件152 尹以操 springboot中jackson使用的包是fasterxml的.可以通过如下代码,将一个形如json格式string转为一个java对象: com.fasterxml.jack …

java String字符串——进度1

String字符串    在JAVA中提供了多种创建字符串对象的方法,这里介绍最简单的两种,    第一种是直接赋值,    第二种是使用String类的构造方法:    如下所示:    Strin …

String字符串的方法

String字符串在Java开发中是我们常用的一种数据类型,同时String字符串也为我们提供了大量的方法.通过一些实例的练习,我们可以对String字符串的方法有一个比较清楚的了解. 有一个字符串S …

JavaSE 学习笔记之String字符串(十四)

API:(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源 …

java 判断String字符串是不是json数据

java 判断String字符串是不是json数据 CreationTime–2018年8月24日18点23分 Author:Marydon JSONObject jo = null; try …

JAVA代码解析String字符串(json格式的)

java解析String字符串(json格式) 需要jar包:json-lib-2.4-jdk15.jar 一. String str = “{\”name\”:\&qu …

随机推荐

3.线性表-cursor

fatal.h #include #include #define Error( Str ) FatalError( Str ) #d …

mysql基本语句

mysql -u root -p; 登录数据库 show databases; 展示数据库 show tables; 展示表 desc messages; 查看messages表的结构 drop da …

[字符编码]Invalid byte 1 of 1-byte UTF-8 sequence终极解决方案

今天在eclipse中编写pom.xml文件时,注释中的中文被eclipse识别到错误:Invalid byte 1 of 1-byte UTF-8 sequence,曾多次遇到该问题,问题的根源是: …

composer 的使用

composer是php包管理工具,非常好用!许多框架,例如zendframework都可以用它来安装. 使用起来其实是很简单的.以下以windowns操作系统为例: 把php添加到系统环境变量.(网 …

oracle 常用博客网址

使用oradebug修改数据库scn – 提供专业ORACLE技术咨询和支持@Phone13429648788 – 惜分飞 Solaris上使用DTrace进行动态跟踪 老熊的三分地-Oracle及数 …

differ比较两个字符串的差异

“abcde”,”abdefk”  —->-c,+f,+k “aba”,”aababb”    —–&g …

Python函数篇(2)-递归函数、匿名函数及高阶函数

1.全局变量和局部变量 一般定义在程序的最开始的变量称为函数变量,在子程序中定义的变量称为局部变量,可以简单的理解为,无缩进的为全局变量,有缩进的是局部变量,全局变量的作用域是整个程序,而局部变量的作 …

Linux 开启echo等服务

第一步: 需要安装xinetd服务(其实daytime就包含在xinetd服务中),安装就直接在”新立得软件管理器”里搜索,安装. sudo apt-get install xin …

Ruby学习之代码块

代码块在其他的语言中都或多或少接触过一些,如perl中sort{$a<=>$b}keys,传入代码块实现按数值排序,在swift中用到闭包,更加深入学习到training closure. …

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180979.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JAVA乐观锁_spring的线程池配置

    JAVA乐观锁_spring的线程池配置首先介绍一些乐观锁与悲观锁:悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很

    2022年8月2日
  • RAID0、RAID1及RAID5的区别详解

    RAID0、RAID1及RAID5的区别详解目前已有的RAID(RedundantArrayofIndependentDisks,独立冗余磁盘阵列)技术有很多种,但是RAID0、RAID1、RAID5是最常见的几种方案。1、RAID0RAID0技术把多块(至少两块)物理硬盘设备通过软件或硬件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。这样,在最理想的情况下,硬盘设备的读写性能会提升数倍,但是若任意一…

    2022年7月25日
  • 关于代理服务器的原理及用法「建议收藏」

    关于代理服务器的原理及用法「建议收藏」关于代理服务器的原理及用法一,什么是代理服务器(Proxy)?答:以类似代理人的身份去取的用户需要的数据。由于它的【代理】能力,使得我们可以透过代理服务器来达成防火墙与用户数据的分析。除此之外我们还可以借助代理服务器来达成节省带宽的目的,以及加快内部网络对因特网的万维网的访问速度。当客户端有因特网的数据要求时,Proxy会帮用户去向目的地取得用户所需要的数据。所以当客户端指定www的代理服务器之后,用户的所有www相关要求就会通过代理服务器去捉取。代理服务器会架设在整个区网的单点对外防火墙上头,而在区

    2022年5月4日
  • 宝马宣布与Mobileye合作,想让每辆车都成为行走的数据源

    宝马宣布与Mobileye合作,想让每辆车都成为行走的数据源

    2022年3月13日
  • java webservice接口开发教程_JAVA入门教程

    java webservice接口开发教程_JAVA入门教程写在前面的话:当两个人碰面后,产生了好感,如果需要得到双方的信息,那么双方的交流是必不可少的!应用程序也如此,各个应用程序之间的交流就需要WebService来作为相互交流的桥梁!项目目的:程序A调用程序B中的方法C…首先申明:本次需要采用的JDK版本为jdk1.6+,也就是要java6+才能看到效果,java5没试过…我认为,升级一下JDK版本比起安装什么Axis以及导入一堆jar包和配…

    2022年11月1日
  • DNS 全局负载均衡(GSLB)基本原理[通俗易懂]

    DNS 全局负载均衡(GSLB)基本原理[通俗易懂]采用全局负载均衡(GSLB)的前提是在不同地区设立多个数据中心,业务已经做了分布式部署的规划,无论用户从哪个IDC访问都能得到相同的结果,或者用户基本不会出现跨区域流动访问的情况,只会访问就近IDC。解析步骤1.用户向本地DNS服务器发出查询请求,如果本地DNS服务器有该域名的缓存记录,如果本地DNS服务器有该域名的缓存记录,则返回给用户,否则进行第2步2.本地DNS服务器进行递归查询,最终会查询到域名注册商处的授权DNS服务器3.授权DNS服务器其返回一条NS记录给本地DNS服务器。.

    2022年5月16日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号