1. 程式人生 > >_059_Android_JSONObject使用方法及詳解

_059_Android_JSONObject使用方法及詳解

轉自https://blog.csdn.net/xifei66/article/details/59058289,感謝作者的無私分享。 

JSONObject,JSON的資料格式如下:

[ {  name1 : { name2: { name3: ' value1' , name4: ' value2 ' }  }  }  , { }  ]

從外到裡看,例子中就是一個數組,數組裡面是兩個json格式的字串,取出name4值過程步驟:

1,將以上字串轉換為JSONArray物件;

2,取出物件的第一項,JSONObject物件;

3,取出name1的值JSONObject物件;

4,取出name2的值JSONObject物件;

5,取出name4的值value2。

    
示例中json陣列格式的字串可以通過方法直接轉換為JSONArray的格式:JSONArray.fromObject(String)
JSONArray getJsonArray=JSONArray.fromObject(arrayStr);//將結果轉換成JSONArray物件的形式  
JSONObject getJsonObj = getJsonArray.getJSONObject(0);//獲取json陣列中的第一項  
String result=getJsonObj.getJSONObject("name1").getJSONObject("name2").getJSONObject("name4");
二.
1,JSONObject
 json物件,就是一個鍵對應一個值,使用的是大括號{ },如:{key:value}
2,JSONArray
  json陣列,使用中括號[ ],只不過數組裡面的項也是json鍵值對格式的
  Json物件中新增的是鍵值對,JSONArray中新增的是Json物件
JSONObject Json = new JSONObject();  
JSONArray JsonArray = new JSONArray();  
Json.put("key", "value");//JSONObject物件中新增鍵值對  
JsonArray.add(Json);//將JSONObject物件新增到Json陣列中 

三.下面來看看XML和JSON之間的互相轉換
question1:後臺接受到前臺的json格式的字串怎麼處理?

public
static  void  jsonToJAVA() {

System.out.println("json字串轉java程式碼");

String jsonStr = "{\"password\":\"\",\"username\":\"張三\"}";

JSONObject jsonObj = JSONObject.fromString(jsonStr);

String username = jsonObj.getString("username");

String password = jsonObj.optString("password");

System.out.println("json--->java\n username="  + username

+ "\t password="  + password);

}

 question2:後臺是怎麼拼裝json格式的字串?

public
static  void  javaToJSON() {

System.out.println("java程式碼封裝為json字串");

JSONObject jsonObj = new
JSONObject();

jsonObj.put("username", "張三");

jsonObj.put("password", "");

System.out.println("java--->json \n"  + jsonObj.toString());}

question3:json格式的字串怎麼轉換為xml格式的字串

public
static  void  jsonToXML() {

System.out.println("json字串轉xml字串");

String jsonStr = "{\"password\":\"\",\"username\":\"張三\"}";

JSONObject json = JSONObject.fromString(jsonStr);

XMLSerializer xmlSerializer = new
XMLSerializer();

xmlSerializer.setRootName("user_info");

xmlSerializer.setTypeHintsEnabled(false);

String xml = xmlSerializer.write(json);

System.out.println("json--->xml \n"  + xml);

}

question4:xml格式的字串怎麼轉換為json格式的字串

public
static  void  xmlToJSON(){

 System.out.println("xml字串轉json字串");

 String xml = "<?xml version=\".\" encoding=\"UTF-\"?><user_info><password></password><username>張三</username></user_info>";

 JSON json=XMLSerializer.read(xml);

 System.out.println("xml--->json \n"+json.toString());

 }


 
question5:javabean怎麼轉換為json字串
 

public
static  void  javaBeanToJSON() {

 System.out.println("javabean轉json字串");

 UserInfo userInfo = new
UserInfo();

 userInfo.setUsername("張三");

 userInfo.setPassword("");

 JSONObject json = JSONObject.fromBean(userInfo);

 System.out.println("javabean--->json \n"  + json.toString());

 }