Android中级之网络数据解析一之Json解析
本文來自http://blog.csdn.net/liuxian13183/?,引用必須注明出處!
在網(wǎng)絡(luò)傳輸?shù)臅r候,經(jīng)常用到的解析方式有xml和json兩種,今天我們主要來說下json、解析,以及其要點。
首先json格式:
“[”標(biāo)識json解析開始,"]"標(biāo)識json解析結(jié)束
"{"標(biāo)識json的一個數(shù)據(jù)開始,"}"標(biāo)識一個數(shù)據(jù)結(jié)束
key:'value'標(biāo)識所傳送的數(shù)據(jù)。key可以加引號,也可以不加;但value必須加引號,單引號或雙引號都可以
key/value之間要用","隔開
其他就沒什么了。
json包通常有g(shù)son,org-json等,下載路徑:http://www.json.org/
那我們是以alibaba的fastjson為例來做示范
下載位置:http://download.csdn.net/detail/liuxian13183/5492645
解析目標(biāo):
[{view:'水滸傳',data:{name:'宋江',age:'37'},data2:{name:"武松",age:"27"},memo:'英雄人物'},{view:'紅樓夢',data:{name:'賈寶玉',age:"17"},data2:{name:"林黛玉",age:"14",memo:'情感人物'}}]
命名文件json.txt,放在assets路徑下
注意:json數(shù)據(jù)要eclipse編輯,不要在windows環(huán)境下用txt編輯,否則會加入空格,造成不必要的影響
先上效果圖
作法1:先寫一bean
public class HistoryBean {private String view;private Map<String, Object> data;private String memo;/*** @return the view*/public String getView() {return view;}/*** @param view the view to set*/public void setView(String view) {this.view = view;}/*** @return the map*/public Map<String, Object> getData() {return data;}/*** @param map the map to set*/public void setData(Map<String, Object> data) {this.data = data;}/*** @return the memo*/public String getMemo() {return memo;}/*** @param memo the memo to set*/public void setMemo(String memo) {this.memo = memo;}/* (non-Javadoc)* @see java.lang.Object#toString()*/@Overridepublic String toString() {return "HistoryBean [view=" + view + ", data=" +data+ ", memo=" + memo+ "]";}
注意:無論是變量還是方法名,都禁止出現(xiàn)關(guān)鍵字。
然后解析
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ListView main_listivew = (ListView) findViewById(R.id.main_listivew);data = new ArrayList<String>();List<String> targetJsons = unParseTxt("json.txt");for (String targetJson : targetJsons) {pase2(targetJson);}adapter = new MyAdapter();main_listivew.setAdapter(adapter);}private List<String> unParseTxt(String string) {// TODO Auto-generated method stubList<String> target = new ArrayList<String>();try {BufferedReader br = new BufferedReader(new InputStreamReader(getAssets().open(string)));String str;while ((str = br.readLine()) != null) {if (!TextUtils.isEmpty(str)) {target.add(str);}}} catch (Exception e) {}return target;}private void pase2(String targetJson) {// TODO Auto-generated method stubLog.i("AlipayTag", targetJson);List<HistoryBean> list = JSON.parseArray(targetJson, HistoryBean.class);for (HistoryBean bean : list) {data.add(bean.toString());}}
注解:
Json解析可使用JSON,JSONObject,JSONArray來調(diào)用
方法有:
解析成一對象,可以是bean,JSON.parse(text);
解析成byte數(shù)組,JSON.toJSONBytes(arg0, arg1)
解析成泛型,JSON.parseObject(input, clazz, features)
根據(jù)需要,大家可以更進(jìn)行相應(yīng)的擴(kuò)展,歡迎大家踴躍交流!
轉(zhuǎn)載于:https://www.cnblogs.com/fengju/archive/2013/05/31/6174459.html
總結(jié)
以上是生活随笔為你收集整理的Android中级之网络数据解析一之Json解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql防注入
- 下一篇: android sina oauth2.