jsonObject和jsonArray

来源:互联网 发布:大张伟的姜昆女友知乎 编辑:程序博客网 时间:2024/04/30 06:06
作为json解析,可以实现的方法有多种,除了Gson解析,还有这个JsonObject、JsonArray的解析方式,同样的可以实现json解析
/**
  *将json串转换成字符串
  **/
package com.bwei.json;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import android.content.Context;public class StreamToStrUtils {public static String getString(Context context){try {InputStream is = context.getAssets().open("musicdata.json");ByteArrayOutputStream baos = new ByteArrayOutputStream();int len;byte[] arr = new byte[1024];while((len=is.read(arr))!=-1){baos.write(arr, 0, len);}return baos.toString();} catch (Exception e) {e.printStackTrace();}return null;}}
<pre name="code" class="java">/**
  *bean类
  **/
<pre name="code" class="java">package com.bwei.json;import java.util.List;public class Music {private String des;private String requestCode;private String authorName;private String des1;private String musicName;private String path;public Music(String des, String requestCode, String authorName,String des1, String musicName, String path) {super();this.des = des;this.requestCode = requestCode;this.authorName = authorName;this.des1 = des1;this.musicName = musicName;this.path = path;}@Overridepublic String toString() {return "Music [des=" + des + ", requestCode=" + requestCode+ ", authorName=" + authorName + ", des1=" + des1+ ", musicName=" + musicName + ", path=" + path + "]";}public String getDes() {return des;}public void setDes(String des) {this.des = des;}public String getRequestCode() {return requestCode;}public void setRequestCode(String requestCode) {this.requestCode = requestCode;}public String getAuthorName() {return authorName;}public void setAuthorName(String authorName) {this.authorName = authorName;}public String getDes1() {return des1;}public void setDes1(String des1) {this.des1 = des1;}public String getMusicName() {return musicName;}public void setMusicName(String musicName) {this.musicName = musicName;}public String getPath() {return path;}public void setPath(String path) {this.path = path;}}
/**
  *实现jsonobject和jsonarray的解析
  **/
package com.bwei.json;import java.util.ArrayList;import java.util.List;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import android.app.Activity;import android.os.Bundle;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);List<Music> list = new ArrayList<Music>();//json字符串String json = StreamToStrUtils.getString(this);JSONObject jsonObject;try {jsonObject = new JSONObject(json);String des = jsonObject.optString("des");String requestCode = jsonObject.optString("requestCode");JSONArray optJSONArray = jsonObject.optJSONArray("music");for (int i = 0; i < optJSONArray.length(); i++) {//得到每一个JSONObjectJSONObject optJSONObject = optJSONArray.optJSONObject(i);String authorName = optJSONObject.optString("authorName");String des2 = optJSONObject.optString("des");String musicName = optJSONObject.optString("musicName");String path = optJSONObject.optString("path");list.add(new Music(des, requestCode, authorName, des2, musicName, path));}for (Music music : list) {System.out.println(music.toString());}} catch (JSONException e) {e.printStackTrace();}}}
<pre name="code" class="java"><pre name="code" class="java">/**
  *这是要解析的json串
  **/
<pre name="code" class="java">{    "des": "姝屾洸",    "music": [        {            "authorName": "姹嘲",            "des": "杩欓姝屾洸,鎻忚堪浜嗙敓鍛界殑鐤媯",            "musicName": "鎬掓斁鐨勭敓鍛�,            "path": "music/aa.mp3"        },        {            "authorName": "闄堝杩�,            "des": "杩欓姝屾洸,鏄檲濂曡繀鐨勭粡鍏镐箣浣�,            "musicName": "鍗佸勾",            "path": "music/ab.mp3"        },        {            "authorName": "閭h嫳",            "des": "浣犱笉鎳傛垜浼ゆ偛",            "musicName": "鐧藉ぉ涓嶆噦澶滅殑榛�,            "path": "music/ac.mp3"        }    ],    "requestCode": "200"}


0 0
原创粉丝点击