一、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格式字元串。不過先要登錄http://www.json.org下載Json2.js文件。引入該包後,js對象直接用toJSONString()裝換為字元串格式,字元串可以用parseJSON()轉換成js對象。
訪問數據
只需用點號表示法來表示數組元素。所以,要想訪問 上面peoples列表的第一個條目的名字,只需在 JavaScript 中使用下面這樣的代碼:
peoples[0].name
利用這樣的語法,可以處理任何 JSON 格式的數據,而不需要使用任何額外的 JavaScript 工具包或 API。
修改數據
正如可以用點號和方括弧訪問數據,也可以按照同樣的方式輕松地修改數據:
peoples[0].name = "Rachmaninov";
在將字元串轉換為 JavaScript 對象之後,就可以像這樣修改變數中的數據。
❷ java中json對象是如何創建或者轉換出來的
JSONObject在JAVA中其實就相當於Map, 可以通過key取到值;
而JAVA對象,一般是JAVA中的版model或者domain 模型對象, 這種對象代表的是一個業務權的模型,是有明確的意義的, 包括裡面的屬性類型都是明確定義;
轉換成對象之後,操作其中的值就可以用getter,setter方法明確指定,
一般其他人使用的時候也能知道裡面有什麼,而如果只有一個JSONObject, 使用的時候除了先在控制台輸入裡面的內容是不知道裡面有什麼的,
並不適合在JAVA方法中的數據傳遞使用
❸ java中如何將數據封裝為JSON包
直接輸出就可以了
String jsondata = "{'a':" + a + ",'b':" + b + ",'c':" + c + "}";
如果是字元串就加上單引號,如
String jsondata = "{'a':'" + a + "','b':'" + b + "','c':'" + c + "'}";
如果abc是數組
String jsondata = "{'a':[" + a[0] + "," + a[1] + "," + a[2] + "],'b':...}";
如果abc是對象就相對復雜一點
String jsondata = "{'a':{'a_paramStr':'" + a.paramStr + "','a_pramaInt'}:a.pramaInt},'b':...}";
當然,如果對象的成員變數很多,可以可以通過對象遍歷的方式輸出,還有包含子對象、子子對象的情況
總結如下
格式:{'數據名':數據值}
數據值為數字時,直接輸出
數據值為字元串時,用單引號包含值,'數據值'
數據值為數組時,用中括弧包含,[數據值1,數據值2,...]
數據值為對象時,用大括弧包含,{'成員名1':成員數值1,'成員名2':{'成員2對象的成員1','成員2對象的成員1值'},...}
數據與數據之間用逗號隔開,以上
一句話,如果傳送數據很簡單可以自己輸出;如果很復雜,乖乖用三方json包吧,我真不懂為什麼抗拒別人做的車輪
❹ java鐨刯son闂棰橀亣鍒頒互涓嬮棶棰樻庝箞瑙e喅
鍐嶆潵璇磋存槸浠涔堣︾粏鐨勯棶棰樸傘傘傘傘傘傘傘
❺ 如何使用java創建json對象
使用ObjectMapper
writeValueAsString(object) 對象轉換成String
readValue(jsonString, class); String轉換成對象
❻ java如何返回json格式
publicstaticvoidreturnJson(HttpServletResponseresponse,CharSequencetext)
throwsException{
response.setContentType("application/json;charset=UTF-8");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
response.getWriter().write(text.toString());
}
其中text這個是JSONObject或者Map
response.setContentType("application/json;charset=UTF-8");這個表示以json格式返回
前台需要eval接收到的版數據,就是權json格式了
❼ java後台如何生成.json文件
如果用SpringMvc的話配置一下就可以了,默認返回json:
<bean
class="org.springframework.web.servlet.view.">
<property name="mediaTypes">
<map>
<entry key="html" value="text/html" />
<entry key="xml" value="application/xml" />
<entry key="json" value="application/json" />
</map>
</property>
<property name="viewResolvers">
<list>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/pages/" />
<property name="suffix" value=".jsp" />
<property name="order" value="0" />
</bean>
</list>
</property>
<property name="defaultViews">
<list>
<bean
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
</bean>
❽ 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 生成JSON 然後 在html頁面 解析 然後 輸出到頁面!!!!在線等!!!
javascript能支持自的json格式是:
a、"{"name":"dd","age":"12"}";
b、"[{"name":"dd",「age\":"12"},{"name」:"kk","age":"20"}]";
在java中直接使用JSONObject類的fromObject即可把對象轉換成json字元串
或者你直接把JAVA的字元串拼接成上面的格式,然後返回出去就行了,然後在ajax的回調函數中處理
頁面的AJAX請求請參考下面的鏈接
http://..com/question/325897417.html