最近自己负责的项目涉及到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());
}
|