首先將json字符串轉換成json對象,然後解析json對象。過程如下。
JSON object JSON object = JSON object . from object(JSON str);
[java]查看純文本
& ltpre & gt& lt/pre & gt;& ltspan style="white-space:pre " >& lt/span>。
& ltpre & gt& lt/pre & gt;
根據json中的鍵獲取它的值。
string name = JSON object . getstring(" name ");
int num = JSON object . getint(" num ");
string sex = JSON object . getstring(" sex ");
int age = JSON object . getint(" age ");
2.將json字符串轉換成java對象
同樣,先把json字符串轉換成json對象,再把json對象轉換成java對象,如下所示。
JSONObject obj = new JSONObject()。from object(JSON str);//將json字符串轉換成json對象。
將json對象轉換成java對象
Person JB =(Person)JSON object . tobe an(obj,Person . class);//將json對象轉換為Person對象。
3.將java對象轉換成json字符串
先把java對象轉換成json對象,再把json對象轉換成json字符串。
JSON object JSON = JSON object . from object(obj);//將java對象轉換成json對象。
string str = JSON . tostring();//將json對象轉換為字符串
完整的代碼如下:
[java]查看純文本
包baz.parse
導入Java . util . ArrayList;
導入Java . util . list;
導入net . SF . JSON . JSON;
導入net . SF . JSON . JSON array;
導入net . SF . JSON . JSON object;
導入net . SF . JSON . JSON serializer;
導入baz . bean . person;
公共類ParseJson {
私有字符串jsonStr
公共ParseJson() {
}
公共ParseJson(字符串str){
this.jsonStr = str
}
/**
*解析json字符串
*/
公共void parse(){
JSON object JSON object = JSON object . from object(JSON str);
string name = JSON object . getstring(" name ");
int num = JSON object . getint(" num ");
string sex = JSON object . getstring(" sex ");
int age = JSON object . getint(" age ");
System.out.println(姓名+ " " +人數+ " " +性別+ " " +年齡);
}
//將json字符串轉換成java對象。
public Person JSON object(){
//接收{}對象,其中接收數組對象會有異常。
if(jsonStr.indexOf("[")!= -1){
jsonStr = jsonStr.replace("["," ");
}
if(jsonStr.indexOf("]")!= -1){
jsonStr = jsonStr.replace("]"," ");
}
JSONObject obj = new JSONObject()。from object(JSON str);//將json字符串轉換成json對象。
Person JB =(Person)JSON object . tobe an(obj,Person . class);//將json對象轉換為Person對象。
返回JB;//返回壹個人對象。
}
}
[java]查看純文本
包baz.bean
公共類人員{
私有字符串名稱;
私有int數;
私弦性;
私人年齡;
公共人物(){
// TODO自動生成的構造函數存根
}
公眾人物(字符串名稱,整數,字符串性別,整數年齡){
super();
this.name = name
this.num = num
this.sex = sex
this.age =年齡;
}
公共字符串getName() {
返回名稱;
}
public void setName(字符串名){
this.name = name
}
public int getNum() {
退貨數量;
}
public void setNum(int num) {
this.num = num
}
公共字符串getSex() {
回報性;
}
public void setSex(String sex) {
this.sex = sex
}
public int getAge() {
回歸年齡;
}
公共無效存儲(整數){
this.age =年齡;
}
}
將java對象轉換成json字符串
[java]查看純文本
打包baz.cons
導入net . SF . JSON . JSON object;
/**
*將java對象轉換成json字符串。
* @作者管理員
*
*/
公共類合並{
公共聯盟(){
// TODO自動生成的構造函數存根
}
公共字符串Object2Json(Object obj){
JSON object JSON = JSON object . from object(obj);//將java對象轉換成json對象。
string str = JSON . tostring();//將json對象轉換為字符串
返回字符串;
}
}
測試類別:
[java]查看純文本
包baz.test
導入Java . util . list;
導入baz . bean . person;
導入baz . cons . consojson;
導入baz . parse . parse JSON;
公共類測試{
公共靜態void main(String[] args) {
//將字符串轉換成json對象,然後根據建築物得到相應的值。
ParseJson pj = new ParseJson("{\ "姓名\":\ "顧\ ",\ "人數\":123456,"性別\":\ "男\ ",\ "年齡\ ":24 });
pj . parse();
//將json字符串轉換成java對象。
人p = pj。JSON 2 object();
system . out . println(" Name:"+p . getname());
system . out . println(" Num:"+p . getnum());
system . out . println(" Sex:"+p . getsex());
system . out . println(" age:"+p . getage());
//將java對象轉換成Json字符串。
Person p1 =新人(" gu1 ",123,"男",23);
consojson CJ = new consojson();
字符串str1 = cj。object 2 JSON(p 1);
system . out . println(str 1);
}
}
測試輸出如下:
古123456男24
姓名:顧
編號:123456
性別:男性
年齡:24歲
{ "年齡":23,"姓名":gu1 ","編號":123,"性別":男" }