初识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的一点使用就到这里了,如果有更深的内容,我还会继续更新的!


根据原作 https://pan.quark.cn/s/0ed355622f0f 的源码改编 野火IM解决方案 野火IM是专业级即时通讯和实时音视频整体解决方案,由北京野火无限网络科技有限公司维护和支持。 主要特性有:私有部署安全可靠,性能强大,功能齐全,全平台支持,开源率高,部署运维简单,二次开发友好,方便与第三方系统对接或者嵌入现有系统中。 详细情况请参考在线文档。 主要包括一下项目: 野火IM Vue Electron Demo,演示如何将野火IM的能力集成到Vue Electron项目。 前置说明 本项目所使用的是需要付费的,价格请参考费用详情 支持试用,具体请看试用说明 本项目默认只能连接到官方服务,购买或申请试用之后,替换,即可连到自行部署的服务 分支说明 :基于开发,是未来的开发重心 :基于开发,进入维护模式,不再开发新功能,鉴于已经终止支持且不再维护,建议客户升级到版本 环境依赖 mac系统 最新版本的Xcode nodejs v18.19.0 npm v10.2.3 python 2.7.x git npm install -g node-gyp@8.3.0 windows系统 nodejs v18.19.0 python 2.7.x git npm 6.14.15 npm install --global --vs2019 --production windows-build-tools 本步安装windows开发环境的安装内容较多,如果网络情况不好可能需要等较长时间,选择早上网络较好时安装是个好的选择 或参考手动安装 windows-build-tools进行安装 npm install -g node-gyp@8.3.0 linux系统 nodej...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值