JSONObject使用方法及详解

最近自己负责的项目涉及到JSON数据的解析,所以在学习之后讲讲自己的认识及见解,希望对大家有帮助.

首先我们来讲讲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格式的字符串怎么处理?

?
1
2
3
4
5
6
7
8
9
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格式的字符串?

?
1
2
3
4
5
6
7
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格式的字符串?

?
1
2
3
4
5
6
7
8
9
10
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格式的字符串?

?
1
2
3
4
5
6
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字符串?

?
1
2
3
4
5
6
7
8
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());
  }

 



猜你喜欢

转载自blog.csdn.net/xifei66/article/details/59058289
今日推荐