学习 Json解析数据

来源:互联网 发布:vb时间触发事件 编辑:程序博客网 时间:2024/06/05 17:25
今天学习了Json数据解析,两种解析方式:1.JsonReader数据解析2.android系统的JSONObject和JSONArray类第一种JsonReader:package com.example.json;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button button;private String jsonData = "[{\"name\":\"Zhangsan\",\"age\":23},{\"name\":\"LiSi\",\"age\":43}]";protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button)findViewById(R.id.button);button.setOnClickListener(new ButtonListener());}class ButtonListener implements OnClickListener {public void onClick(View v) {JsonUtils jsonUtils = new JsonUtils();jsonUtils.Parsejson(jsonData);}}}package com.example.json;import java.io.StringReader;import android.annotation.SuppressLint;import android.util.JsonReader;public class JsonUtils {@SuppressLint("NewApi")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();//若名字为name输出语句,反之名字为age输出语句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) {e.printStackTrace();}}}全部代码:package com.example.json;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button button;private String jsonData = "[{\"name\":\"Zhangsan\",\"age\":23},{\"name\":\"LiSi\",\"age\":43}]";protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button)findViewById(R.id.button);button.setOnClickListener(new ButtonListener());}class ButtonListener implements OnClickListener {public void onClick(View v) {JsonUtils jsonUtils = new JsonUtils();jsonUtils.Parsejson(jsonData);}}}package com.example.json;import java.io.StringReader;import android.annotation.SuppressLint;import android.util.JsonReader;public class JsonUtils {@SuppressLint("NewApi")public void Parsejson(String jsonData) {try {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) {e.printStackTrace();}}}第二种android系统的JSONObject和JSONArray类 package com.example.jsonreader;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button button;private String jsonData = "{\"students\":[{\"name\":\"Jack\",\"age\":12}, {\"name\":\"Vista\",\"age\":23}, {\"name\":\"Kaka\",\"age\":22}, {\"name\":\"Hony\",\"age\":31}]}";protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button)findViewById(R.id.button);button.setOnClickListener(new ButtonListener());}class ButtonListener implements OnClickListener {public void onClick(View v) {JsonUtils jsonUtils = new JsonUtils();jsonUtils.Parsejson(jsonData);}}}package com.example.jsonreader;import org.json.JSONArray;import org.json.JSONObject;import android.annotation.SuppressLint;public class JsonUtils {@SuppressLint("NewApi")public void Parsejson(String jsonData) {try {JSONObject jo = new JSONObject(jsonData);JSONArray jsonArray = (JSONArray)jo.get("students");for (int i = 0; i < jsonArray.length(); i++) {JSONObject o = (JSONObject)jsonArray.get(i);System.out.println("name-->" + o.getString("name") + "age-->" + o.getString("age"));}} catch(Exception e) {e.printStackTrace();}}}


 

原创粉丝点击