java中对json数据的解析
首先是解析json的工具类
import java.io.StringReader;import com.google.gson.stream.JsonReader;public class JsonUtils {public void parseJson(String jsonData) {try {// 声明一个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("name")) {System.out.println("name------->>>>"+ reader.nextString());} else if (tagName.equals("age")) {System.out.println("age------->>>>" + reader.nextInt());}}// 解析键值对完毕reader.endObject();}// 解析数组完毕reader.endArray();} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}}
main方法,需要对json数据中的双引号进行转义,转义方法就是在双引号前加"\",比如json数据为
{"name":"Micheal","age":20}则转义后的json数据为 {\"name\":\"Micheal\",\"age\":20}
import org.omg.CORBA.PRIVATE_MEMBER;
public class MainActivity {
public static void main(String[] args) {
String jsonData = "[{\"name\":\"Micheal\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
JsonUtils jsonUtils = new JsonUtils();
jsonUtils.parseJson(jsonData);
}
}
运行结果: