初识JSON

初见JSON

第一次接触JSON是因为在Android客户端开发的 时候,我需要获得来自服务器的信息,服务器给出的是json的字符串,我需要对这个字符串进行解析得到我需要的信息,但是我不知道该怎么使用JSON,因为从来没接触过。所以我查了一些资料,知道了JSON的一点最基本的用法,所以我也就写下来在自己忘记的时候可以查看一下,因为我只是会自己需要的操作,所以其他的操作我就暂时不写了,因为我也不懂,这点还是要见谅一下。

为什么要用JSON

为什么要用JSON呢?XML不好么?从服务器获得的可以是XML文件,也可以是JSON文件,我们都需要对文件进行解析,只是对XML的解析比较麻烦和繁琐,而JSON的操作就比较简单了,所以 服务器端可以返回JSON的字符串,然后我们直接生成一个JSONObject对象,就直接可以进行解析了,方便操作。

JSON的操作

<data>
    <student>
        <id>10001</id>
        <name>Tom</name>
        <sex>boy</sex>
        <age>18</age>
    </student>
    <student>
        <id>10002</id>
        <name>Jack</name>
        <sex>boy</sex>
        <age>16</age>
    </student>
</data>
比如说,从服务器可能得到上面所示的一个XML文件,我们需要对XML文件进行解析,获取每一位学生的信息,这里我就不说XML文件怎么解析了,不了解的可以去网上看看资料,总之还是比较不太方便的,所以我们不想要这样的文件,我们想要一个JSON的文件,那么JSON里的文件信息是什么样的呢?
[{id:1000,name:"Tom",sex:"boy",age:18},{id:10002,name:""Jack",sex:"boy",age:16}]
如上,转换成JSON的之后的文件内容就是这样的,当然,关于双引号的什么转义啦就见谅一下啦。
要对这个字符串进行解析,当然不需要大家自己来做,因为java给我们封装好了一个类,我们可以直接使用的。JSONObject,这个类就是java给我们提供的专门用来解析JSON文件的,下面我讲一下它的最简单的用法。
比如现在我得到了一个字符串,内容就是上面的,现在我需要生成一个对象,一个JSONArray的对象,这个对象保存的是一个数组,也就是说JSONArray里面存放的是JSONObject对象,而JSONObject对象里面存放的就是每一位学生的信息。
public String parseJSON(String json){
		StringBuilder sb = new StringBuilder();
		try {
			JSONArray array = new JSONArray(json);
			for(int i=0;i<array.length();i++){
				JSONObject object = array.getJSONObject(i);
				int id = object.getInt("id");
				String name = object.getString("name");
				String sex = object.getString("sex");
				int age = object.getInt("age");
				sb.append(id+"-").append(name+"-").append(sex+"-").append(age).append("\n");
			}
				
		} catch (JSONException e) {}
		return sb.toString();
}
上面的方法就是对JSON的字符串进行解析,然后我们在MainActivity中调用这个方法,在TextView上来显示内容,就知道我们解析的正确性了,当然,是正确的啦。
TextView text = (TextView) findViewById(R.id.text);
String s = "[{id:1000,name:\"Tom\",sex:\"boy\",age:18},{id:10002,name:\"Jack\",sex:\"boy\",age:16}]";
text.setText(parseJSON(s));
上面是我在MainActivity中调用的方法,然后我们看一看在手机上显示的情况:


可以看到,显示是正确的,说明我们的解析是正确的!

好了,对JSON的一点使用就到这里了,如果有更深的内容,我还会继续更新的!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值