【Android】Android的与服务器端传送信息使用JSON类-JSONObject与JSONArray的使用

xiaoxiao2021-02-28  79

json类用途比较广泛,主要是比较方便并且相当于发送和接受的数据进行打包,发送包和接收包来处理包这样比较整体和有效

自从爱上写博客,把我之前用过的东西拿出来温习顺便 给大家分享

导入jar包json中的JSONObject的使用json中的JSONArray的使用

1.导入jar包 首先下载json的jar包这个网上很多,一会我也会在我的博客上上传我一直在用的json的jar包

其实主要就是下载jar包之后复制到app下的libs下之后还得导入jar包 这个和平时导入jar包无区别,我这里图片差一个导入jar,点击jar包右键as library。。。 这个不会请查阅别的博客,我感觉这个应该是一个搞软件所必需的。

第二就是JSONObject的使用

这里假设 android的客户端发送jsonobject类

// 创建jsonobject类 String data1 ="zifuchuan"; int data2 = 1222; JSONObject Select_jsonObj = new JSONObject(); String Select_result = null;//用于string转换 Select_jsonObj.put("key1",data1);// 放入标签为key1的data1 Select_jsonObj.put("key2",data2);// 放入标签为key2的data2 Select_result = Select_jsonObj.toString();//将jsonobject转换为String用于发送(比如http协议或是socket协议发送一般都是发送string类型所以此步骤是必须的)

服务器接收jsonobject类

//首先从服务器得到String类型数据recedata JSONObject Back_jsonObject = new JSONObject(recedata);//将接受的string类型数据转换为原来的JSONObject类型 String data1=Back_jsonObject.getString("key1");//取出String类型 int data2=Back_jsonObject.getInt("key2");//取出Int类型

这里注意

放入什么标签 取出什么标签 放入什么类型 取出什么类型

(double int string 等等都可以.get。。。)

第三就是JSONArray的使用

这个类的使用就是比较隐含的了就我而言我觉得是最好用的一个类型了因为他和数组有关系,往往我们传数据都和数组有关系

// 发送端

String array[] = new String[3];// 建立一个 数组 // 向数组中添加数据 array[0] = "HAHA"; array[1] = "hehe"; array[2] = "heihei"; // 创建JSON对象 JSONObject Send_jsonObj = new JSONObject(); Send_jsonObj.put("array",array);//添加key为array的数组array

//接下来是socket或是http协议发送这里不做介绍

// 接收端

//得到协议传过来的String 类型的 Back_result JSONObject Back_jsonObject = new JSONObject(Back_result);//将接收到的String转换为原本的JSONObject类 JSONArray jsonArray = Back_jsonObject.getJSONArray("array");// 利用Array来读取数组(这里注意每个取出不同的array都重新建立对象也就是说一个数组对应一个JSONArray对象) String recearray[] = new String[3];//建立接受的数组存贮 for (int i = 0; i < jsonArray.length(); i++) { recearray[i] = jsonArray.getString(i);// 取出每个数组中的数值 }

这里和之前的地方一样 存在 getString 这里和你的数组类型对应, 例如 存入int 取出的当然也是 int

还有就是一个要注意每个 取出的数组会单独赋予给一个JSONArray对象所以每个JSONArray对象对应一个数组。

我将会在不就上传一个自己写过的json类的测试程序 有兴趣的请自行下载。(客户端的)

转载请注明原文地址: https://www.6miu.com/read-68165.html

最新回复(0)