class轉jsonobject的簡單介紹

本文目錄一覽:

java實體類怎麼轉換成json。

導入Google的包gson-2.2.4.jar

然後實例化Gson

static Gson gosn = new Gson();

String json = gosn.toJson(hashMap); //這裡放一個對象,什麼對象都可以。

轉化後就是Json,功能強大很多,也簡單很多。

json-lib-2.4-jdk15.jar

ezmorph-1.0.6.jar

轉換的話這樣用

String s= JSONArray.fromObject(user).toString();

spring-webmvc4

在方法上加入@ResponseBody,同時方法返回值為實體對象,spring會自動將對象轉換為json格式,並返回到客戶端

java中 如何 根據Class 對象,將Object轉換成對應的類型

GoodsListGetResponseVO goodsListGetResponseVO = JSONObject.parseObject(jsonObject.get(“goodsListGetResponse”).toString(), GoodsListGetResponseVO.class);

把一個object轉化成你自定義類對象,你首先得確定你的object是那種類型?

不然強行轉肯定會出錯,就算是把json object轉自定義class 也要字段能對應上才能轉,需要你自定義個轉化得方法。

如果是json轉自定義類,可以用阿里得fastJson包,上面一行代碼就是示例

Grails中把實體類轉換為JSONObject對象時報錯:There is a cycle in the hierarchy!

應該是你的對象包含了對自身的引用,轉換json時進行遞歸出現這個錯誤。

class類型的json怎麼解析

一、 JSON (JavaScript Object Notation)一種簡單的數據格式,比xml更輕巧。

Json建構於兩種結構:

1、“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。 如:

{

“name”:”jackson”,

“age”:100

}

2、值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)如:

{

“students”:

[

{“name”:”jackson”,“age”:100},

{“name”:”michael”,”age”:51}

]

}

二、java解析JSON步驟

A、服務器端將數據轉換成json字符串

首先、服務器端項目要導入json的jar包和json所依賴的jar包至builtPath路徑下(這些可以到JSON-lib官網下載:)

然後將數據轉為json字符串,核心函數是:

public static String createJsonString(String key, Object value)

{

JSONObject jsonObject = new JSONObject();

jsonObject.put(key, value);

return jsonObject.toString();

}

B、客戶端將json字符串轉換為相應的javaBean

1、客戶端獲取json字符串(因為android項目中已經集成了json的jar包所以這裡無需導入)

public class HttpUtil

{

public static String getJsonContent(String urlStr)

{

try

{// 獲取HttpURLConnection連接對象

URL url = new URL(urlStr);

HttpURLConnection httpConn = (HttpURLConnection) url

.openConnection();

// 設置連接屬性

httpConn.setConnectTimeout(3000);

httpConn.setDoInput(true);

httpConn.setRequestMethod(“GET”);

// 獲取相應碼

int respCode = httpConn.getResponseCode();

if (respCode == 200)

{

return ConvertStream2Json(httpConn.getInputStream());

}

}

catch (MalformedURLException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

return “”;

}

private static String ConvertStream2Json(InputStream inputStream)

{

String jsonStr = “”;

// ByteArrayOutputStream相當於內存輸出流

ByteArrayOutputStream out = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len = 0;

// 將輸入流轉移到內存輸出流中

try

{

while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)

{

out.write(buffer, 0, len);

}

// 將內存流轉換為字符串

jsonStr = new String(out.toByteArray());

}

catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

return jsonStr;

}

}

2、獲取javaBean

public static Person getPerson(String jsonStr)

{

Person person = new Person();

try

{// 將json字符串轉換為json對象

JSONObject jsonObj = new JSONObject(jsonStr);

// 得到指定json key對象的value對象

JSONObject personObj = jsonObj.getJSONObject(“person”);

// 獲取之對象的所有屬性

person.setId(personObj.getInt(“id”));

person.setName(personObj.getString(“name”));

person.setAddress(personObj.getString(“address”));

}

catch (JSONException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

return person;

}

public static ListPerson getPersons(String jsonStr)

{

ListPerson list = new ArrayListPerson();

JSONObject jsonObj;

try

{// 將json字符串轉換為json對象

jsonObj = new JSONObject(jsonStr);

// 得到指定json key對象的value對象

JSONArray personList = jsonObj.getJSONArray(“persons”);

// 遍歷jsonArray

for (int i = 0; i personList.length(); i++)

{

// 獲取每一個json對象

JSONObject jsonItem = personList.getJSONObject(i);

// 獲取每一個json對象的值

Person person = new Person();

person.setId(jsonItem.getInt(“id”));

person.setName(jsonItem.getString(“name”));

person.setAddress(jsonItem.getString(“address”));

list.add(person);

}

}

catch (JSONException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

return list;

}

怎樣將一個類轉換為json對象

給你個最簡單的例子:引用Newtonsoft.Json.dll

class Program

{

static void Main(string[] args)

{

Student student = new Student();

student.Name = “guwei4037”;

student.Age = 7;

string json = JsonConvert.SerializeObject(student);//序列化輸出Json字符串

Console.WriteLine(json);

Student jsonObject = JsonConvert.DeserializeObjectStudent(json);

Console.WriteLine(string.Join(” “, jsonObject.Name, jsonObject.Age));//反序列化輸出 guwei4037和7

}

}

public class Student

{

public string Name { get; set; }

public int Age { get; set; }

}

原創文章,作者:TK05M,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130539.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TK05M的頭像TK05M
上一篇 2024-10-03 23:28
下一篇 2024-10-03 23:29

相關推薦

  • Idea新建文件夾沒有java class的解決方法

    如果你在Idea中新建了一個文件夾,卻沒有Java Class,應該如何解決呢?下面從多個方面來進行解答。 一、檢查Idea設置 首先,我們應該檢查Idea的設置是否正確。打開Id…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29
  • Python Class括號中的參數用法介紹

    本文將對Python中類的括號中的參數進行詳細解析,以幫助初學者熟悉和掌握類的創建以及參數設置。 一、Class的基本定義 在Python中,通過使用關鍵字class來定義類。類包…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27
  • Guava Limiter——限流器的簡單易用

    本文將從多個維度對Guava Limiter進行詳細闡述,介紹其定義、使用方法、工作原理和案例應用等方面,並給出完整的代碼示例,希望能夠幫助讀者更好地了解和使用該庫。 一、定義 G…

    編程 2025-04-27

發表回復

登錄後才能評論