android 用JSON 解析数据接口方法

android 用JSON 解析数据接口方法,第1张

接口获取下来的数据

{"status":200,"message":"查询成功","data":{"id":32,"user_id":null,"user_code":null,"user_pass":null,"meeting_id":"1","meeting_pass":null,"config_param_ip":"11.1.1.70","port":"6501","web_config_param_ip":"11.1.1.70","web_port":"6501","unit_code":null,"create_time":null,"update_time":null,"status":0,"userCode":"video1","userPass":"video1","meetingId":"1","meetingPass":"","apiPort":"13000","username":"admin","password":"123456","updateTime":"2021-11-08 17:45:29"}}

使用方法

try {

    JSONObject jsonObject = new JSONObject(outstring)

    int resultCode = jsonObject.getInt("status")

    if (resultCode == 200) {

        JSONObject obj = jsonObject.getJSONObject("data")

        IP = obj.getString("config_param_ip")

        port = obj.getString("web_port")

        username = obj.getString("userCode")

        password = obj.getString("userPass")

        roomID = Integer.parseInt(obj.getString("meetingId"))

        roomPassword = obj.getString("password")

    } else {

        ToastUtils.showShort("查询失败")

    }

    goVideo()

} catch (Exception e) {

    e.printStackTrace()

}

你好,我试过了,这样能取到你要的结果:

用的gson-2.2.4.jar包,你应该有吧,没有百度搜下去下个就好了。

import com.google.gson.JsonArray

import com.google.gson.JsonObject

import com.google.gson.JsonParser

public class MyTest {

    public static void main(String[] args) {

        String json = "{'resultcode':'200','reason':'ReturnSuccessd!','result':{'data':[{'MCC':'460','MNC':'1','LNG':'120.721423','LAT':'31.29854','O_LNG':'120.72577772352','O_LAT':'31.296529947917','PRECISION':'1101','ADDRESS':'江苏省苏州市吴中区金鸡湖大道368号'}]}}"

        JsonParser jsonParser = new JsonParser()

        JsonObject jsonObj = jsonParser.parse(json).getAsJsonObject()

        JsonObject result = jsonObj.get("result").getAsJsonObject()

        JsonArray data = result.get("data").getAsJsonArray()

        String O_LNG = data.get(0).getAsJsonObject().get("O_LNG").getAsString()

        String O_LAT = data.get(0).getAsJsonObject().get("O_LAT").getAsString()

        String ADDRESS = data.get(0).getAsJsonObject().get("ADDRESS").getAsString()

        System.out.println(O_LNG)

        System.out.println(O_LAT)

        System.out.println(ADDRESS)

    }

}

用org.json以及谷歌提供gson来解析json数据的方式更好一些。

安卓下通常采用以下几种方式解析json数据:

1、org.json包(已经集成到android.jar中了)

2、google提供的gson库

3、阿里巴巴的fastjson库

4、json-lib

以Google出品的Gson为例,具体步骤为:

1、首先,从 code.google.com/p/google-gson/downloads/list下载GsonAPI:

google-gson-1.7.1-release.zip 把gson-1.7.jar copy到libs(项目根目录新建一个libs文件夹)中。 可以使用以下两种方法解析JSON数据,通过获取JsonReader对象解析JSON数据。

代码如下:

String jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]"

try{

JsonReader reader = new JsonReader(new StringReader(jsonData))

reader.beginArray()

while(reader.hasNext()){

reader.beginObject()

while(reader.hasNext()){

String tagName = reader.nextName()

if(tagName.equals("username")){

System.out.println(reader.nextString())

}

else if(tagName.equals("userId")){

System.out.println(reader.nextString())

}

}

reader.endObject()

}

reader.endArray()

}

catch(Exception e){

e.printStackTrace()

}

2、使用Gson对象获取User对象数据进行相应的 *** 作:

代码如下:

Type listType = new TypeToken<LinkedList<User>>(){}.getType()

Gson gson = new Gson()

LinkedList<User>users = gson.fromJson(jsonData, listType)

for (Iterator iterator = users.iterator()iterator.hasNext()) {

User user = (User) iterator.next()

System.out.println(user.getUsername())

System.out.println(user.getUserId())

}

3、如果要处理的JSON字符串只包含一个JSON对象,则可以直接使用fromJson获取一个User对象:

代码如下:

String jsonData = "{\"username\":\"arthinking\",\"userId\":001}"

Gson gson = new Gson()

User user = gson.fromJson(jsonData, User.class)

System.out.println(user.getUsername())

System.out.println(user.getUserId())


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11765830.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存