json解析

解析json数据时首先需要一个org.json包,在开发android中系统已经有了这个包,所以不用再次导入。如果应用中没有这个包就会报错了,需要自己下载导入,

当然首先解析字符串时数据必须是json类型。

JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。
一个对象以“{”(左括号)开始,“}”(右括号)结束 每个“名称”后跟一个“:”(冒号) “‘名称/值’对”之间使用“,”(逗号)分隔。

当解析json字符串时:(解析对象student)

<span style="font-size:14px;">String str = "{\"student\":{\"name\":\"小胡\",\"age\":12,\"id\":\"123\",\"sex\":\"男\"}}";
		
		try {
			JSONObject object = new JSONObject(str);
			</span>
<span style="font-size:14px;"><span style="white-space:pre">			</span>//只解析一项字符串,同理将student看作key,其中值看作一个value,则是解析一组字符串了
			JSONObject student = object.getJSONObject("student");
			String name = student.getString("name");</span>
<span style="font-size:14px;">
			int age = student.getInt("age");
			String id = student.getString("id");
			String sex = student.getString("sex");
			Logs.d("name--"+name+"age--"+age+"id--"+id+"sex--"+sex);
			
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}</span>
解析json数组:

<span style="font-size:14px;"><span style="white-space:pre">					</span>JSONObject json = new JSONObject(message);      //message所解析的字符串
					JSONArray array = json.getJSONArray("content");     //content为json数组内的key值
					
					int num = array.length();
					for (int i = 0; i < num; i++) {
						JSONObject object = array.getJSONObject(i);
						String msg = object.getString("msg");       
						
					}</span>

生成json字符串:

<span style="font-size:14px;"><span style="white-space:pre">			</span>JSONObject jsongObject = new JSONObject();
		
			jsongObject.put("code", 1);
			jsongObject.put("message", "成功!");</span>
生成json数组形式:

<span style="font-size:14px;"><span style="white-space:pre">		</span>JSONObject object = new JSONObject();
		object.put("name", "张三");
		object.put("password", "123");
		JSONObject object2 = new JSONObject();
		object2.put("name", "李四");
		object2.put("password", "456");
		
		JSONArray array = new JSONArray();
		array.put(0, object);
		array.put(1, object2);
		
		JSONObject json = new JSONObject();
		json.put("array", array);
		Logs.d(json.toString());</span>


下面是遍历Assets文件夹的一个方法

<span style="font-size:14px;"><span style="white-space:pre">		</span>String[] list = getContext().getAssets().list("");
			for (String string : list) {
				Logs.d(string+"\n");
			}</span>
当读取Assets中的文件时:

<span style="font-size:14px;"><span style="white-space:pre">		</span>InputStream is = getContext().getAssets().open("user");    //通过流读取文件
		byte[] by = new byte[1024];
		int num ;
		while((num = is.read(by))!=-1){
			String str = new String(by, 0, num);
			Logs.d(str);
		}</span>




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值