1 概念
JavaScript Object Notation
键值对的集合
服务器与客户端数据传输较方便的格式
2 JSON VS XML
数据可读性相同
JSON数据体积小
JSON与JAVASCRIPT的交互更方便
JSON对数据描述性相对较差
3 JSON格式
{
"name":"Jack",address{
"city":"beijing",
"street","chaoyanglu"
}
}
{}代表JSON对象 一个JSON对象
【】代表JSON对象数组,放很多个JSON对象
4 JSON解析
jsonUtils.parseUserFromJson(jsonData);
工具类1 原始解析
public class JsonUtils {
public void parseJson(String jsonData) {
try {
//开始解析数组
//开始解析对象
//开始解析键值对
//解析JSON数据解析JsonReader对象
JsonReader reader = new JsonReader(new StringReader(jsonData));
reader.beginArray();
while (reader.hasNext()) {
reader.beginObject();
while (reader.hasNext()) {
String tagName = reader.nextName();
if (tagName.equals("?")) {
//do something
} else if (tagName.equals("?")) {
//do something
}
}
reader.endObject();
}
reader.endArray();
} catch (Exception e) {
// TODO: handle exception
}
}
}
工具类2
解析一个Json对象
public void parseUserFromJson(String jsonData) {
Gson gson = new Gson();
User user =gson.fromJson(jsonData, User.class);
}
解析一个Json数组
public void parseUserFromJson(String jsonData) {
Type listType = new TypeToken<LinkedList<User>>()().getType();
Gson gson = new Gson();
LinkedList<UserDataHandler> =gson.fromJson(jsonData, listType);
for (Iterator iterator=user.iterator();iterator.hasNext();) {
User user =(User)iterator.next();
}
}