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. …

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 服务器版dll修复工具,dll修复工具「建议收藏」

    服务器版dll修复工具,dll修复工具「建议收藏」winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄,缺少它可能造成部分软件无声音。当你的电脑提示“丢失winmm.dll”或者“没有找到winmm.dll”等类似错误信息。如果sqlite3.dll系统文件丢失、损坏,自行寻找选择适合系统的DLL系统文件,不但麻烦,还得冒着系统异常的风险。无主之地、荣誉勋章等游戏所需的physxcudart_20.Dll下载,解压后…

  • 利用Topshelf把.NET Core Generic Host管理的应用程序部署为Windows服务「建议收藏」

    利用Topshelf把.NET Core Generic Host管理的应用程序部署为Windows服务「建议收藏」背景2019第一篇文章。此文源于前公司在迁移项目到.NETCore的过程中,希望使用GenericHost来管理定时任务程序时,没法部署到Windows服务的问题,而且官方也没给出解决方案,只能关注一下官方issue#809等他们方解决了。官方文档只提供了一个《在Windows服务中托管ASP.NETCore》的方案,可以使用Microsoft.AspNetCore.Host…

  • 什么是迁移学习(Transfer Learning)?【精讲+代码实例】

    文章目录@[toc]1.Introduction2.DevelopmentofMachineLearning3.Whatistransferlearning?4.Howtotransfer?4.1Example1:物体识别4.2Example2:放射科诊断4.3Example3:语音识别系统5.Themeaningoftransferlearnin…

  • 测试集(2)-words

    测试集(2)-words aa.ma.mabandonabandonabattoirabilityabilityableableabnormalabnormalaboardaboardaboutaboutaboveaboveabracadabraabroadabroadabsenceabsenceabsentabsent

  • 多项式分布的理解概率公式的理解「建议收藏」

    多项式分布的理解概率公式的理解「建议收藏」多项式分布是二项分布的推广。二项分布(也叫伯努利分布)的典型例子是扔硬币,硬币正面朝上概率为p,重复扔n次硬币,k次为正面的概率即为一个二项分布概率。而多项分布就像扔骰子,有6个面对应6个不同的点数。二项分布时事件X只有2种取值,而多项分布的X有多种取值,多项分布的概率公式为  这个公式看上去像是莫名其妙地冒出来的,想要了解它首先必须要知道组合数学中的多项式定理。多项式定理:当n是一个正整数时…

    2022年10月12日

发表回复

您的电子邮箱地址不会被公开。

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