使用java将json字符串转换成实体类,java json转实体对象

本文目录一览:

java中把json怎么转换成数组?

使用原生的解析:

String json = “…”;

//遍历数组里的值,得到每个独立的对象,然后获取对应的值设置到声明好的对象中,最终创建对象完成后添加到集合中,如我自己代码里的片段:

for (int j = 0; j array.length(); j++) {

obj = array.getJSONObject(j);

Data data = new Data();

mDataList.add(data);

}

数组声明

在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。

数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。

以上内容参考:百度百科-数组

java,特殊类型json字符串转换成对象

JSON与java互转的开源库有很多

Gson XStream JSONObject 等都是轻松实现实现对象与JSON字符串互转的

你这个需求很简单

以下就是代码,注意要引用一个JSONObject的jar包

String json = “{\”tdhghg\”: {\”A\”:\”yyrtysefsf\”,\”B\”:2}}”;

JSONObject jsonObj = new JSONObject(json);

IteratorString iterator = jsonObj.keys();

while(iterator.hasNext()){

    String key = iterator.next();

    JSONObject obj = jsonObj.getJSONObject(key);

    System.out.println(obj.getString(“A”));//这里就是得到A的值

    System.out.println(obj.getString(“B”));//这里就是得到B的值

}

如何将JSON转换成实体类集合

package com.hp.svse;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Locale;

import net.sf.json.JsonConfig;

import net.sf.json.processors.JsonValueProcessor;

/**

* Timestamp 处理器

*/

public class JsonDateValueProcessor implements JsonValueProcessor {

private String formatDateTime =”yyyy-MM-dd HH:mm:ss”;

private String formatDate =”yyyy-MM-dd”;

public Object processArrayValue(Object value, JsonConfig config) {

return process(value);

}

急,求助java高手,Json形式的字符串怎么转化成Json对象?

1jQuery插件支持的转换方式:

代码如下:

$.parseJSON( jsonstr );

//jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象

2浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:

代码如下:

JSON.parse(jsonstr); //可以将json字符串转换成json对象

JSON.stringify(jsonobj); //可以将json对象转换成json字符串

注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。

3Javascript支持的转换方式:

eval(‘(‘ + jsonstr + ‘)’);

//可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号

注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

4JSON官方的转换方式:

提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;

可以在上获取到这个js,一般现在用json2.js。

java el表达式问题

第一步骤:问题总结:

el表达式默认获取的是java实体对象和map,list等集合中的数据,

如map 通过键名获取value  ${key}

list 则通过循环类似for一样展示

c:forEach items=”${dataListMap}” var=”item”

li

div${item.id}/div 

div${item.content}/div 

/li

${item.content} 现在获取的是一个json字符串 一个办法是通过截取获得(实现问题过多,不灵活不推荐),一个是在后台利用json操作将其转为map或者对应的实体类(参考第一点)。

第一种:json格式数据的传递(一般使用ajax)。

如果你想要

1、操作json数据格式第一种可以参考:

网页链接

import com.alibaba.fastjson.JSON;

public static void main(String[] args) {

   //创建一个对象并将 给对象赋值

   Student st = new Student();

   st.setId(1);

   st.setName(“张三”);

   st.setSex(“男”);

   //使用fastjson转化为json字符串

  String studentJson = JSON.toJSONString(st);

  System.out.println(studentJson);

   //将json字符串转为实体对象

  Student changeStudent = JSON.parseObject(studentJson,Student.class);

  System.out.println(changeStudent.getName())

}

2、操作json数据格式第二种可以参考:

网页链接

import java.util.List;

4.2 关键代码:

public static void testList(){    

//将集合对象转为json对象,json字符串    

ListStudent list= new ArrayListStudent();    

Student st = new Student();    

st.setId(1);    

st.setName(“张三”);    

st.setSex(“男”);    

Student st2 = new Student();    

st2.setId(2);    

st2.setName(“小丽”);    

st2.setSex(“女”);    

list.add(st);   

list.add(st2);    

//将类转为json对象    

JSONArray array=JSONArray.fromObject(list);    

System.out.println(array.toString());    

//将json对象转为对应的集合类    

JSONArray arrayBean = JSONArray.fromObject(array.toString());    

ListStudent listBean = (ListStudent) JSONArray.toCollection(arrayBean,Student.class);    

//输出转换后的结果    

for (Student lst: listBean) {        

System.out.println(“name:”+lst.getName());    

}

}

3、使用ajax调用接收后台数据:

3.1 使用jquery的ajax 和servlet网页链接

3.2 使用原生js实现异步调用获取servlet数据:网页链接

第二种:将json对象转为实体类(转换方式参考第一种),并将实体类放入request或者session作用域中。

前端jsp页面引入cjstl表达式:

%@ taglib uri=”” prefix=”c” %

将数据放入request作用域中:

如何把这样的json串转换成对象

1.简单的解析json字符串

首先将json字符串转换为json对象,然后再解析json对象,过程如下。

JSONObject jsonObject = JSONObject.fromObject(jsonStr);

[java] view plain copy

pre/prespan style=”white-space:pre”/span

pre/pre

根据json中的键得到它的值

String name = jsonObject.getString(“name”);

int num = jsonObject.getInt(“num”);

String sex = jsonObject.getString(“sex”);

int age = jsonObject.getInt(“age”);

2.将json字符串转换为java对象

同样先将json字符串转换为json对象,再将json对象转换为java对象,如下所示。

JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象

将json对象转换为java对象

Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象

3.将java对象转换为json字符串

先将java对象转换为json对象,在将json对象转换为json字符串

JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象

String str = json.toString();//将json对象转换为字符串

完整代码如下:

[java] view plain copy

package baz.parse;

import java.util.ArrayList;

import java.util.List;

import net.sf.json.JSON;

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

import net.sf.json.JSONSerializer;

import baz.bean.Person;

public class ParseJson {

private String jsonStr;

public ParseJson() {

}

public ParseJson(String str){

this.jsonStr = str;

}

/**

* 解析json字符串

*/

public void parse(){

JSONObject jsonObject = JSONObject.fromObject(jsonStr);

String name = jsonObject.getString(“name”);

int num = jsonObject.getInt(“num”);

String sex = jsonObject.getString(“sex”);

int age = jsonObject.getInt(“age”);

System.out.println(name + ” ” + num + ” ” + sex + ” ” + age);

}

//将json字符串转换为java对象

public Person JSON2Object(){

//接收{}对象,此处接收数组对象会有异常

if(jsonStr.indexOf(“[“) != -1){

jsonStr = jsonStr.replace(“[“, “”);

}

if(jsonStr.indexOf(“]”) != -1){

jsonStr = jsonStr.replace(“]”, “”);

}

JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象

Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象

return jb;//返回一个Person对象

}

}

[java] view plain copy

package baz.bean;

public class Person {

private String name;

private int num;

private String sex;

private int age;

public Person() {

// TODO Auto-generated constructor stub

}

public Person(String name, int num, String sex, int age) {

super();

this.name = name;

this.num = num;

this.sex = sex;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getNum() {

return num;

}

public void setNum(int num) {

this.num = num;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

将java对象转换为json字符串

[java] view plain copy

package baz.cons;

import net.sf.json.JSONObject;

/**

* 将java对象转换为json字符串

* @author Administrator

*

*/

public class ConsJson {

public ConsJson() {

// TODO Auto-generated constructor stub

}

public String Object2Json(Object obj){

JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象

String str = json.toString();//将json对象转换为字符串

return str;

}

}

测试类:

[java] view plain copy

package baz.test;

import java.util.List;

import baz.bean.Person;

import baz.cons.ConsJson;

import baz.parse.ParseJson;

public class Test {

public static void main(String[] args) {

//将字符串转换为json对象,然后根据建得到相应的值

ParseJson pj = new ParseJson(“{\”name\”:\”gu\”,\”num\”:123456,\”sex\”:\”male\”,\”age\”:24}”);

pj.parse();

//将一个json字符串转换为java对象

Person p = pj.JSON2Object();

System.out.println(“Name:” + p.getName());

System.out.println(“Num:” + p.getNum());

System.out.println(“Sex:” + p.getSex());

System.out.println(“age:” + p.getAge());

//将一个java对象转换为Json字符串

Person p1 = new Person(“gu1″,123,”male”,23);

ConsJson cj = new ConsJson();

String str1 = cj.Object2Json(p1);

System.out.println(str1);

}

}

测试输出如下:

gu 123456 male 24

Name:gu

Num:123456

Sex:male

age:24

{“age”:23,”name”:”gu1″,”num”:123,”sex”:”male”}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/303163.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-31 11:49
下一篇 2024-12-31 11:49

相关推荐

  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python中将字符串转化为浮点数

    本文将介绍在Python中将字符串转化为浮点数的常用方法。在介绍方法之前,我们先来思考一下这个问题应该如何解决。 一、eval函数 在Python中,最简单、最常用的将字符串转化为…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • Python学习笔记:去除字符串最后一个字符的方法

    本文将从多个方面详细阐述如何通过Python去除字符串最后一个字符,包括使用切片、pop()、删除、替换等方法来实现。 一、字符串切片 在Python中,可以通过字符串切片的方式来…

    编程 2025-04-29
  • c# enum转换成string

    本文将从以下几个方面详细阐述c#中enum类型转换成string类型的方法及注意事项。 一、基本语法和示例 c#中的enum类型可以看作是一组有名字的常量值,通常用于定义一组相关的…

    编程 2025-04-29
  • 面向对象编程、类和对象

    面向对象编程(Object-Oriented Programming, OOP)是一种编程方法,它将现实世界中的事物抽象为对象(Object),对象的属性和方法被封装成类(Clas…

    编程 2025-04-29
  • 全能编程开发工程师必知——DTD、XML、XSD以及DTD参数实体

    本文将从大体介绍DTD、XML以及XSD三大知识点,同时深入探究DTD参数实体的作用及实际应用场景。 一、DTD介绍 DTD是文档类型定义(Document Type Defini…

    编程 2025-04-29
  • Python如何将字符串1234变成数字1234

    Python作为一种广泛使用的编程语言,对于数字和字符串的处理提供了很多便捷的方式。如何将字符串“1234”转化成数字“1234”呢?下面将从多个方面详细阐述Python如何将字符…

    编程 2025-04-29
  • Python int转二进制字符串

    本文将从以下几个方面对Python中将int类型转换为二进制字符串进行详细阐述: 一、int类型和二进制字符串的定义 在Python中,int类型表示整数,二进制字符串则是由0和1…

    编程 2025-04-29
  • 用title和capitalize美观处理Python字符串

    在Python中,字符串是最常用的数据类型之一。对字符串的美观处理是我们在实际开发中经常需要的任务之一。Python内置了一些方法,如title和capitalize,可以帮助我们…

    编程 2025-04-28

发表回复

登录后才能评论