Android下Json檔案解析
這篇文章為轉載吧 看了兩個大牛的部落格
寫部落格有時也是給自己做個筆記吧
在很多時候都要用到Json解析
Json的定義:一種輕量級的資料交換格式,具有良好的可讀和便於快速編寫的特性。業內主流技術為其提供了完整的解決方案(有點類似於正則表示式 ,獲得了當今大部分語言的支援),從而可以在不同平臺間進行資料交換。JSON採用相容性很高的文字格式,同時也具備類似於C語言體系的行為。 – Json.org
不多說廢話了。。。
關於讀取assets和res下的檔案 這篇博文寫的很好~
Android中資原始檔的使用
這是我自己寫的一個小李子:
public class MainActivity extends Activity {
private AssetManager assetManager;
private TextView textView1;
private TextView textView2;
private TextView textView3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
assetManager = getAssets();
textView1 = (TextView)findViewById(R.id.textview1);
textView2 = (TextView)findViewById(R.id.textview2);
textView3 = (TextView)findViewById(R.id.textview3);
try {
InputStream inputStream = assetManager.open("data.json");
byte[] buffer = new byte[inputStream.available()];
inputStream.read(buffer);
String jsonString = new String(buffer,"gbk");
String path = "";
String description ="";
String name = "" ;
try {
JSONObject jsonObject = new JSONObject(jsonString);
JSONArray jsonArray = jsonObject.getJSONArray("data");
for(int i =0;i<jsonArray.length();i++){
JSONObject jsonObjectChild = ((JSONObject)jsonArray.opt(i));
path = path+jsonObjectChild.getString("path");
description = description +jsonObjectChild.getString("description");
name = name+jsonObjectChild.getString("name");
}
} catch (JSONException e) {
// TODO 自動生成的 catch 塊
e.printStackTrace();
}
textView1.setText(path);
textView2.setText(description);
textView3.setText(name);
} catch (IOException e) {
// TODO 自動生成的 catch 塊
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Json檔案 :
{“data”:[{“path”:”images\/pic0.jpg”,”description”:”0這是身啊加速度接啊快樂到家阿卡三等獎阿卡麗風景卡拉是否健康0”,”name”:”使用者資訊0”},{“path”:”images\/pic1.jpg”,”description”:”21這是身啊加速度接啊快樂到家阿卡三等獎阿卡麗風景卡拉是否健康1”,”name”:”使用者資訊1”},{“path”:”images\/pic2.jpg”,”description”:”42這是身啊加速度接啊快樂到家阿卡三等獎阿卡麗風景卡拉是否健康2”,”name”:”使用者資訊2”},{“path”:”images\/pic3.jpg”,”description”:”63這是身啊加速度接啊快樂到家阿卡三等獎阿卡麗風景卡拉是否健康3”,”name”:”使用者資訊3”},{“path”:”images\/pic4.jpg”,”description”:”84這是身啊加速度接啊快樂到家阿卡三等獎阿卡麗風景卡拉是否健康4”,”name”:”使用者資訊4”},{“path”:”images\/pic5.jpg”,”description”:”105這是身啊加速度接啊快樂到家阿卡三等獎阿卡麗風景卡拉是否健康5”,”name”:”使用者資訊5”},{“path”:”images\/pic6.jpg”,”description”:”126這是身啊加速度接啊快樂到家阿卡三等獎阿卡麗風景卡拉是否健康6”,”name”:”使用者資訊6”},{“path”:”images\/pic7.jpg”,”description”:”147這是身啊加速度接啊快樂到家阿卡三等獎阿卡麗風景卡拉是否健康7”,”name”:”使用者資訊7”},{“path”:”images\/pic8.jpg”,”description”:”168這是身啊加速度接啊快樂到家阿卡三等獎阿卡麗風景卡拉是否健康8”,”name”:”使用者資訊8”},{“path”:”images\/pic9.jpg”,”description”:”189這是身啊加速度接啊快樂到家阿卡三等獎阿卡麗風景卡拉是否健康9”,”name”:”使用者資訊9”}],”result”:”1”}
後面那個result是個string 直接getString(“result”);就可以了
效果圖
以上