Android json数据的解析

json格式,JavaScript  Object Notation的缩写。 和xml一样,是一种描述性语言。

基本根式如下:

名称:数值

{"languages":[
   {"id":1,"ide":"eclipse","name":"java"},
   {"id":2,"ide":"xcode","name":"swift"},
   {"id":3,"ide":"visual studio","name":"c#"}

],
"cat":"it"
}



Android对于json格式数据的解析:


public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		
		// 解析 json 格式数据
		try {
			InputStream is = getResources().getAssets().open("test.json");
			InputStreamReader isr = new InputStreamReader(is, "utf-8");
			BufferedReader br = new BufferedReader(isr);

			String string;
			StringBuilder builder = new StringBuilder();
			while ((string = br.readLine()) != null) {
				builder.append(string);
			}
			br.close();
			isr.close();

			JSONObject root = new JSONObject(builder.toString());
			System.out.println(root.getString("cat"));
			JSONArray array = root.getJSONArray("languages");
			for (int i = 0; i < array.length(); i++) {
				JSONObject lan = array.getJSONObject(i);
				System.out.println("...........");
				System.out.println(lan.getInt("id"));
				System.out.println(lan.getString("ide"));
				System.out.println(lan.getString("name"));
			}
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		
		// 生成json数据
		try {
			JSONObject root2 = new JSONObject();
			root2.put("cat", "it");

			JSONObject lan1 = new JSONObject();
			lan1.put("id", 1);
			lan1.put("ide", "eclipse");
			lan1.put("name", "java");

			JSONObject lan2 = new JSONObject();
			lan2.put("id", 2);
			lan2.put("ide", "xcode");
			lan2.put("name", "swift");

			JSONObject lan3 = new JSONObject();
			lan3.put("id", 3);
			lan3.put("ide", "visual studio");
			lan3.put("name", "c#");

			JSONArray array = new JSONArray();
			array.put(lan1);
			array.put(lan2);
			array.put(lan3);

			root2.put("languages", array);
			System.out.println(root2);
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值