本文目錄一覽:
java中json對象是如何創建或者轉換出來的
JSONObject在JAVA中其實就相當於Map, 可以通過key取到值;
而JAVA對象,一般是JAVA中的model或者domain 模型對象, 這種對象代表的是一個業務的模型,是有明確的意義的, 包括裏面的屬性類型都是明確定義;
轉換成對象之後,操作其中的值就可以用getter,setter方法明確指定,
一般其他人使用的時候也能知道裏面有什麼,而如果只有一個JSONObject, 使用的時候除了先在控制台輸入裏面的內容是不知道裏面有什麼的,
並不適合在JAVA方法中的數據傳遞使用
在 java web開發中怎麼使用json?
一、JSON建構有兩種結構:
json簡單說就是javascript中的對象和數組,所以這兩種結構就是對象和數組2種結構,通過這兩種結構可以表示各種複雜的結構
1、對象:對象在js中表示為「{}」括起來的內容,數據結構為 {key:value,key:value,…}的鍵值對的結構,在面向對象的語言中,key為對象的屬性,value為對應的屬性值,所以很容易理解,取值方法為 對象.key 獲取屬性值,這個屬性值的類型可以是 數字、字符串、數組、對象幾種。在Java中就是一種Map結構。
2、數組:數組在js中是中括號「[]」擴起來的內容,數據結構為 [“java”,”javascript”,”vb”,…],取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數字、字符串、數組、對象幾種。在Java中是一種list結構。
經過對象、數組2種結構就可以組合成複雜的數據結構了。
二、Json in Javascript
使用Json語法創建對象
var people = {“name”:”jack”,”sex”:”mail”};
可以通過這種語法創建json對象,用「{}」括起來,用「,」隔開key:value
使用Json語法創建數組
var arr =[value1,value2…];
一個包含多個people的數組 peoples = [{“name”:”jack”,”sex”:”mail”},
“name”:”lily”,”sex”:”femail”};
Json數組可以通過這種語法創建,用”[]”括起來,數組元素之間用「,」分隔開,下面是這種語法的示意圖:
在使用Json格式字符串與服務器交互時候,可以利用Json擴展的方法將字符串轉換成一個JavaScript對象,或者將一個對象轉換成Json格式字符串。不過先要登錄下載Json2.js文件。引入該包後,js對象直接用toJSONString()裝換為字符串格式,字符串可以用parseJSON()轉換成js對象。
訪問數據
只需用點號表示法來表示數組元素。所以,要想訪問 上面peoples列表的第一個條目的名字,只需在 JavaScript 中使用下面這樣的代碼:
peoples[0].name
利用這樣的語法,可以處理任何 JSON 格式的數據,而不需要使用任何額外的 JavaScript 工具包或 API。
修改數據
正如可以用點號和方括號訪問數據,也可以按照同樣的方式輕鬆地修改數據:
peoples[0].name = “Rachmaninov”;
在將字符串轉換為 JavaScript 對象之後,就可以像這樣修改變量中的數據。
java如何創建Json文件?
如果聊天數據的結構是固定的或變化不大的。
就直接「編排」json字符串。
為要輸出的對象增加一個String toJSON()方法
StringBuilder b=new StringBuilder();
b.append(“{ name:\””);
b.append(username);
b.append(“\”}”);
依次類推
return b.toString();
適合絕大多數情況。
補充:json是做交換格式,查詢效率非常低,如果做存儲的檢索格式就誤用了。
就是說「聊天信息的保存用json應該可以吧」還不如你之前的mysql數據庫。
json用在客戶端往服務端發送的通訊交換數據的格式上。服務端收到後轉為數據庫中或內存中存放。
如何用java遞歸生成帶children的json串
先遞歸出一個
node對象,再將node對象轉換成json串。直接進行字符串的json操作不建議。
class
Node{
private
String
id;
private
String
parentId;
private
ListNode
children;
public
void
addChildren(Node
child){
getChildren().add(child);
}
public
ListNode
getChildren();
public
String
transformTojson(Node
node
,StringBuffer
jsonStr){
//遞歸
if(jsonStr
==null){
StringBuffer
jsonStr=new
();
}
if(node.id!=null){
//拼接父節點json串
jsonStr.append(id:node.id,children:#children);
}
List
childNodeList
=
node.getChildren();
StringBuffer
childrenSB
=
new();
for(
Node
node
:childNodeList){
childrenSB=transformTojson(node);
}
sonStr.replaceFirst(“#children”,childrenSB);
return
jsonStr;
}
}
偽代碼大概這樣。
transformTojson方法可以不自己寫,直接使用第三方工具jar包的json轉化方法,比如gjson。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/284621.html