使用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/zh-tw/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

發表回復

登錄後才能評論