1. 程式人生 > >簡述JSON.parseObject和JSON.toJsonString

簡述JSON.parseObject和JSON.toJsonString

    最近在看公司專案原始碼,竟然對JSON.parseObject和JSON.toJsonString的這兩個方法感到特別陌生(自己較笨,不能代表其他人的水平),在這裡回顧一下,順便記錄下來,以便後續檢視。

    首先,說一下json的格式。JSON語法是JavaScript物件表示法語法的子集。

  • 資料在名稱/值中
  • 資料之間用逗號分隔
  • 花括號儲存物件
  • 方括號儲存陣列

下面來演示是如何用的。

首先引入fastjson的jar包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.sht</groupId>
  <artifactId>SpringLoaderTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>SpringLoaderTest</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
  	
	<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
	<dependency>
	    <groupId>com.alibaba</groupId>
	    <artifactId>fastjson</artifactId>
	    <version>1.2.47</version>
	</dependency>
	
  </dependencies>

</project>

然後建立java物件

package com.sht.demo20180623;
/**
 * 用於測試json的類
 * @author SHT
 *
 */
public class JsonStudent {
	
	private String name;
	
	private int age;
	
	private String sex;
	
	

	@Override
	public String toString() {
		return "JsonStudent [name=" + name + ", age=" + age + ", sex=" + sex + "]";
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}
	
	
}

測試類

package com.sht.demo20180623;

import com.alibaba.fastjson.JSON;

/**
 * 主要用來闡述Json.parseObject(String str, Class<?> c)和Json.toJsonString(Class<?> c)
 * @author SHT
 *
 */
public class JsonDemo {
	
	public static void main(String[] args) {
		String s = "{'name':'sunhaiting','age':'30','sex':'male'}";
		JsonStudent js = JSON.parseObject(s, JsonStudent.class);
		System.out.print("將json字串轉化為物件:");
		System.out.println(js.toString());
		
		String jsonString = JSON.toJSONString(js);
		System.out.print("將json物件轉化為json字串:");
		System.out.println(jsonString);
	}
}

輸出結果

將json字串轉化為物件:JsonStudent [name=sunhaiting, age=30, sex=male]
將json物件轉化為json字串:{"age":30,"name":"sunhaiting","sex":"male"}

    這裡可能有人會有疑問:如果json字串中內容與java物件中的內容不是一一對應的話會怎麼處理呢?對兩個方法分別進行說明。

    JSON.parseObject(String str, Class<?> c)  將json字串轉化為物件時,如果str中欄位不在java物件中,則多餘的欄位忽略;如果str中欄位少於java物件中,則轉化後的java物件中響應欄位為空。

    JSON.toJsonString(Class<?> c)  同理。

相關推薦

簡述JSON.parseObjectJSON.toJsonString

    最近在看公司專案原始碼,竟然對JSON.parseObject和JSON.toJsonString的這兩個方法感到特別陌生(自己較笨,不能代表其他人的水平),在這裡回顧一下,順便記錄下來,以便後續檢視。    首先,說一下json的格式。JSON語法是JavaScri

JSON.parseObjectJSON.toJSONString詳細說明

例如:首先用maven引入fastjson(java有四種JSON解析方法,感興趣的可以瞭解下) <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</ar

瞭解JSON.parseObject(String str)/JSONObject.parseObject()JSON.toJSONString()的功能

今天用到了JSON物件和JSON 字串之間的相互轉換,藉此記錄一下心得。 基礎語法: JSON字串轉化成JSON物件 JSONObject jsonobject = JSON.parseObject(str); 或者 JSONObject jsonobject = JS

JSON.parseObjectjson轉換為物件,包含三層物件轉換巢狀轉換

public class JSONTest { public static void main(String[] args){ String json1="{\n" + " \"name\": \"skynet\"

python json.loadjson.loads的區別

json對象 ict 字串 pen 區別 json bsp 實現 寫入文件 load和loads都是實現“反序列化”,區別在於(以Python為例): loads針對內存對象,即將Python內置數據序列化為字串 如使用json.dumps序列化的對象d_json=js

JSON.parse()JSON.stringify()

結果 console str ted pro att name 字符串 tor parse用於從一個字符串中解析出json對象,如 var str = ‘{"name":"huangxiaojian","age":"23"}‘ 結果: JSON.parse(str)

JSON.stringify()JSON.parse()分別是什麽

string gif obj bject 什麽 是什麽 分別是 object 對象 JSON.stringify() 從一個對象中解析出字符串 JSON.stringify({"a":"1","b":"2"}) 結果是:"{"a":"1","b":"2"}" JSON.

你不知道的JSON.stringifyJSON.parse

mar png 遍歷 bool 簡單的 log 之間 表示法 名稱 json是JavaScript 對象表示法(JavaScript Object Notation),是一種簡單的數據格式,類似於XML,其格式為名稱/值對,數據用逗號隔開,名稱必須用雙引號括起來。例如:

python中json.dump() json.dumps() 有那些區別?

其他 reading 如果 data logs with open 序列 pos cme 以下內容摘自:《Python Cookbook》 json 模塊提供了一種很簡單的方式來編碼和解碼JSON數據。 其中兩個主要的函數是 json.dumps() 和 json.load

JSON.parse() JSON.stringify()的簡單介紹

文本 原來 local 也不能 將不 一次 json格式 iter ati 參考地址: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

JSON 字串 JSON 物件之間的相互轉換

一、什麼是 JSON JSON 即 JavaScript Object Notation ,是一種輕量級的資料互動格式。 易於人閱讀和編寫,同時也易於機器解析和生成。 JSON 完全獨立於語言之外,但語法上借鑑了 JavaScript。 輕量級:相對於XML,JSON

extjs4中json字串json物件轉換

用extjs也有一段時間了,但有些東西就是記不住,就比如json字串和json物件的轉換,我還是把它記下來。 將json字串轉為json物件 var str = '{ "name": "張三", "age": "23" }' var obj = JSON.parse(str); 將j

json.dump()json.load()

div register from dump write mps import word load import json,time # save data to json file def store(data): with open(‘data.json‘

python中json檔案處理涉及的四個函式json.dumps()json.loads()、json.dump()json.load()的區分

一、概念理解 1、json.dumps()和json.loads()是json格式處理函式(可以這麼理解,json是字串)   (1)json.dumps()函式是將一個Python資料型別列表進行json格式的編碼(可以這麼理解,json.dumps()函式是將字典轉化為字串)   (

JSON物件JSON字串之間的轉換

JSON物件轉JSON字串 var obj = {"a":"1", "b":[{"c":"3"},{"d":"4"}]}; var str = JSON.stringify(obj); JSON字串轉JSON物件 var str = '{"a":"1","b":[{"

1python中json檔案處理涉及的四個函式json.dumps()json.loads()、json.dump()json.load()的區分

python中json檔案處理涉及的四個函式json.dumps()和json.loads()、json.dump()和json.load()的區分 一、概念理解 1、json.dumps()和json.loads()是json格式處理函式(可以這麼理解,json是字串)   (1)json

springMVC——控制層傳回JSON物件JSON字串

1、傳回JSON物件 實體類 private String username; private String password; private List<String> daylist = new ArrayList<String>();

Python中json.dumps()json.dump()區別

Python內建的json 模組提供了一種非常完善的Python物件到JSON格式的轉換。 其中 json.dumps() 和 json.loads() , 要比其他序列化函式庫如pickle的

JSON.parseJSON.stringify 引數詳解

JSON.parse和JSON.stringify這兩個瀏覽器自帶(IE6/7除外)的方法平常我們經常用到,但是一般都只是用到了他們的第一個引數,比如字串轉物件:JSON.parse('{}')   物件轉字串:JSON.stringify({}) 今天特意看了下這

jQuery拼接json字串json陣列(自定義Jsonp)

/** myJsonp:json陣列 myJsonp1:沒有複選框時用的方法,json字串 myJsonp2:有複選框時用的方法,json字串 myJsonp3:有複選框時和有編輯器時用的方法,json字串 */ (function ($) { //序列化和返序列化