Java使用fastjson對(duì)String、JSONObject、JSONArray相互轉(zhuǎn)換
fastjson對(duì)String、JSONObject、JSONArray相互轉(zhuǎn)換
fastjson是阿里巴巴的開(kāi)源JSON解析庫(kù),它可以解析JSON格式的字符串,支持將Java Bean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean
下面主要是本人在工作中經(jīng)常用到的關(guān)于String、JSONObject、JSONArray的相互裝換
String——>>>JSONArray
String st = "[{name:Tim,age:25,sex:male},{name:Tom,age:28,sex:male},{name:Lily,age:15,sex:female}]";
JSONArray tableData = JSONArray.parseArray(st);
JSONArray——>>>JSONObject
JSONObject rowData = new JSONObject();
for(int i;i<tableData.length();i++){
rowData = tableData.getJSONObject[i];
}
String——>>>JSONObject
String st = "{name:Tim,age:25,sex:male}";
JSONObject rowData = JSONObject.parseObject(st);
JSONObject——>>>JSONArray
JSONObject rowData = {info:
[
{
name:Tim,
age:25,
sex:male
},{
name:Tom,
age:28,
sex:male
},{
name:Lily,
age:15,
sex:female
}
]
};
JSONArry tableData = rowData.get("info");
com.alibaba.fastjson.JSONObject、JSONArray與String之間的轉(zhuǎn)換demo
話不多說(shuō),直接上代碼
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.Map;
/**
* Created by LH on 2019/2/21 14:08
*/
public class JsonDemo {
public static void main(String[] args) {
//1.json字符串轉(zhuǎn)換為對(duì)象
String jsonString="{'name':'42313123','id':'2345','age':12}";
JSONObject jsonObject = JSONObject.parseObject(jsonString);
String id = jsonObject.getString("id");
System.out.println(id);
//2. JSONObject轉(zhuǎn)化成自定義類(lèi)對(duì)象
PeoplePo peoplePo1 = JSONObject.parseObject(jsonString, PeoplePo.class);
System.out.println(peoplePo1);
//3. JSONObject轉(zhuǎn)化成Map集合
Map map = JSONObject.parseObject(jsonString, Map.class);
System.out.println(map);
//4. 自定義對(duì)象轉(zhuǎn)化成json格式的字符串
PeoplePo peoplePo = new PeoplePo();
peoplePo.setId("1");
peoplePo.setAge(11);
peoplePo.setName("LH");
String peopleJson = JSON.toJSONString(peoplePo);
System.out.println(peopleJson);
//5. String類(lèi)型轉(zhuǎn)化成JSONObject;
String str = "{\"result\":\"success\",\"message\":\"成功!\"}";
JSONObject jsonObject1 = JSONObject.parseObject(str);
System.out.println(jsonObject1);
//6. JSONObject轉(zhuǎn)化成JSONArray的兩種方式
String str1 = "{\"result\":\"success\",\"message\":\"成功!\",\"data\":[{\"name\":\"Tom\",\"age\":\"20\"}]}";
JSONObject jsonToArray = JSONObject.parseObject(str1);
//方式一
JSONArray data = jsonToArray.getJSONArray("data");
System.out.println(data);
//方式二
JSONArray jsonArray = JSONArray.parseArray(jsonToArray.getString("data"));
System.out.println(jsonArray);
//7. jsonArray轉(zhuǎn)化成JSONObject并取出其中的元素?cái)?shù)據(jù)
JSONObject o = (JSONObject) jsonArray.get(0);
String name = o.getString("name");
System.out.println(o);
System.out.println(name);
System.out.println(jsonArray.toString());
}
}
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot如何通過(guò)filter修改Header的值
這篇文章主要介紹了Springboot如何通過(guò)filter修改Header的值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Spring Boot Security 結(jié)合 JWT 實(shí)現(xiàn)無(wú)狀態(tài)的分布式API接口
JSON Web Token(縮寫(xiě) JWT)是目前最流行的跨域認(rèn)證解決方案。這篇文章主要介紹了Spring Boot Security 結(jié)合 JWT 實(shí)現(xiàn)無(wú)狀態(tài)的分布式API接口 ,需要的朋友可以參考下2019-04-04
SpringBoot+websocket實(shí)現(xiàn)消息對(duì)話功能
WebSocket是一種在Web應(yīng)用程序中實(shí)現(xiàn)實(shí)時(shí)雙向通信的技術(shù),它可以用于在線游戲、在線聊天、推送通知、實(shí)時(shí)監(jiān)控等,并且比傳統(tǒng)的輪詢(xún)技術(shù)更加高效和可靠,本文就給大家介紹基于SpringBoot+websocket實(shí)現(xiàn)消息對(duì)話功能,感興趣的小伙伴可以自己動(dòng)手試一試2023-09-09
java:找不到符號(hào)報(bào)錯(cuò)的排錯(cuò)方案舉例
當(dāng)你使用一個(gè)未定義或未導(dǎo)入的類(lèi)時(shí),編譯器會(huì)報(bào)錯(cuò),下面這篇文章主要給大家介紹了關(guān)于java:找不到符號(hào)報(bào)錯(cuò)的排錯(cuò)方案,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
Java自動(dòng)釋放鎖的三種實(shí)現(xiàn)方案
在筆者面試過(guò)程時(shí),經(jīng)常會(huì)被問(wèn)到各種各樣的鎖,如樂(lè)觀鎖、讀寫(xiě)鎖等等,非常繁多,下面這篇文章主要給大家介紹了關(guān)于Java自動(dòng)釋放鎖的三種實(shí)現(xiàn)方案,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
Struts 2 數(shù)據(jù)校驗(yàn)功能及校驗(yàn)問(wèn)題的解決方案
這篇文章主要介紹了Struts 2 數(shù)據(jù)校驗(yàn)功能及校驗(yàn)問(wèn)題的解決方案的相關(guān)資料,需要的朋友可以參考下2016-09-09
SpringBoot實(shí)現(xiàn)ImportBeanDefinitionRegistrar動(dòng)態(tài)注入
在閱讀Spring Boot源碼時(shí),看到Spring Boot中大量使用ImportBeanDefinitionRegistrar來(lái)實(shí)現(xiàn)Bean的動(dòng)態(tài)注入,它是Spring中一個(gè)強(qiáng)大的擴(kuò)展接口,本文就來(lái)詳細(xì)的介紹一下如何使用,感興趣的可以了解一下2024-02-02
在同一個(gè)類(lèi)中調(diào)用帶有@Transactional注解的方法示例
這篇文章主要為大家介紹了在同一個(gè)類(lèi)中調(diào)用帶有@Transactional注解的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
SpringCloud學(xué)習(xí)筆記之OpenFeign進(jìn)行服務(wù)調(diào)用
OpenFeign對(duì)feign進(jìn)行進(jìn)一步的封裝,添加了springmvc的一些功能,更加強(qiáng)大,下面這篇文章主要給大家介紹了關(guān)于SpringCloud學(xué)習(xí)筆記之OpenFeign進(jìn)行服務(wù)調(diào)用的相關(guān)資料,需要的朋友可以參考下2022-01-01

