从jsonArray java android Studio获取字符串[重复]
Posted
技术标签:
【中文标题】从jsonArray java android Studio获取字符串[重复]【英文标题】:Get string from jsonArray java android Studio [duplicate] 【发布时间】:2021-12-20 02:21:00 【问题描述】:
"resource": [
"devid": "862057040386432",
" time": "2021-11-02 12:36:30",
"etype": "G_PING",
"engine": "OFF",
"lat": "9.235940",
"lon": "78.760240",
"vbat": "3944",
"speed":"7.49",
"plnt": "10",
"fuel": 0
]
此时我可以访问“资源”JSON 数组,但不确定如何获得 "lat" 和 "lon" 值在 for 循环中。对不起,如果这个描述不是太清楚,我对编程有点陌生。
【问题讨论】:
欢迎来到 Stack Overflow。我强烈建议您使用 tour 了解 Stack Overflow 的工作原理并阅读 How to Ask。这将帮助您提高问题的质量。 对于每个问题,请显示您尝试过的尝试以及您从尝试中得到的错误消息。 顺便说一句:您的 JSON 无效。看看带有 speed 属性的线。 您需要解析 JSON,将其存储在某个对象中,然后访问 lat 和 lon。我知道一个来自 Java docs.oracle.com/javaee/7/api/javax/json/package-summary.html 的库,不确定它是否适用于 android。 【参考方案1】:const data =
resource: [
devid: "862057040386432",
time: "2021-11-02 12:36:30",
etype: "G_PING",
engine: "OFF",
lat: "9.235940",
lon: "78.760240",
vbat: "3944",
speed:"7.49",
plnt: "10",
fuel: 0
]
;
const latAndLongVersionOne = data.resource.map(res => [res.lat, res.lon]);
const latAndLongVersionTwo = data.resource.map((lat, lon) => [lat, lon]);
const latAndLongVersionThree = data.resource.map((lat, lon) => (lat, lon));
console.log('Lat and long: ', latAndLongVersionOne); // Nested array with long and lat (values names has to be inferred)
console.log('Lat and long: ', latAndLongVersionTwo); // Same result with another syntax
console.log('Lat and long: ', latAndLongVersionThree); // Array of objects with caption
【讨论】:
【参考方案2】:您可以使用ObjectMapper
类来执行此操作。
-
将
Jackson
package 的依赖添加到您的build.gradle
像这样定义您的 JSON 响应类 ...
class MyJsonResponse
List<MyResource> resource;
class MyResource
Double lat;
Double lon;
-
像这样创建对象映射器类的实例并使用它
var mapper = new ObjectMapper()
var jsonString = // obtain your JSON string somehow
// Convert JSON string to object
var myResponse= objectMapper.readValue(jsonCarArray,MyJsonResponse.class)
for(var resource : myResponse.resources)
// Here you get the values
print(resource.lat + " " + resource.lon)
【讨论】:
以上是关于从jsonArray java android Studio获取字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 JsonArray 对象转换为要在 spinner java android 上使用的字符串数组?
从 Android 获取带有 StringRequest 的 JSONArray
如何解决 JSONArray 问题,无法获取数据,Android Studio