一、JSONObject和JSONArray的数据形式
JSON、JSONObject、JSONArray都是FastJson框架中的东西,JSON协议使用方便,越来越流行,JSON的处理器有很多,这里先介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架。
JSON、JSONObject、JSONArray、javabean关系的解析:
首先JSON、JSONObject、JSONArray是属于FastJson框架的类,它们就是普通的类只不过在FastJson框架赋予了它们对json格式字符的处理能力。
- JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。
- JSONObject:fastJson提供处理对象样子的json字符的类。
- JSONArray:fastJson提供处理数组样子的json字符的类。
JSONObject的数据是用{ }来表达
例如:JSONObject player1
{
"name" : "bryant",
"number" : "24",
"team" : "lakers",
"draft_year" : "1996"
}
JSONArray是由JSONObject构成的数组,组织形式为[{},{},…,{}]
例如:JSONArray players
[
{
"name" : "kobe_bryant",
"number" : "24",
"team" : "lakers",
"draft_year" : "1996"
},
{
"name" : "lebron_james",
"number" : "23",
"team" : "lakers",
"draft_year" : "2003"
}
]
//表示了包含2个JSONObject的JSONArray。
二、字符串String转换为JSONObject对象和JSONArray对象
String转JSONObject
JSONObject player1 = new JSONObject (String str);
JSONObject player1 = JSONObject.parseObject(String str);
String转JSONArray
JSONArray players = new JSONArray(String str);
JSONArray players = JSONArray.parseArray(String str);
三、由JSONArray中获取JSONObject对象
可将JSONArray当做一般数组,只是获取数据内数据的方法不同
JSONObject player1 = (JSONObject)players.get(0);
JSONObject player1 = players.getJSONObject(0);
四、获取JSONObject内数据
int player_num = player1.getInt("number"); //player_num得到的数据为24.
String team_name = player1.getString("team"); //team_name得到数据为lakers.
Strirng player_name = player1.get("name").toString(); //另一种方式