当前位置: 首页 > 知识库问答 >
问题:

如何使用Klaxon从我的JSON文件中获得两个数组中的第一个图像URL?

东门佐
2023-03-14
[
 
    "first_flight": "2010-12-08",
    "flickr_images": [
      "https://i.imgur.com/9fWdwNv.jpg",
      "https://live.staticflickr.com/8578/16655995541_7817565ea9_k.jpg",
      "https://farm3.staticflickr.com/2815/32761844973_4b55b27d3c_b.jpg",
      "https://farm9.staticflickr.com/8618/16649075267_d18cbb4342_b.jpg"
    ],
     "flickr_images": [
      "https://farm8.staticflickr.com/7647/16581815487_6d56cb32e1_b.jpg",
      "https://farm1.staticflickr.com/780/21119686299_c88f63e350_b.jpg",
      "https://farm9.staticflickr.com/8588/16661791299_a236e2f5dc_b.jpg"
    ],
 ]
val result = URL("https://api.spacexdata.com/v4/dragons").readText()
        val parser: Parser = Parser()
        val stringBuilder: StringBuilder = StringBuilder(result)
        jsonArray = parser.parse(stringBuilder) as JsonArray<JsonObject>
    ....
    **rocket.image = jsonArray.string("flickr_images")[i]?.get(0).toString() - doesnt work**

Have java.lang.ClassCastException:com.beust.klaxon.JSONArray不能强制转换为java.lang.String

共有1个答案

太叔京
2023-03-14
"flickr_images": [
  "https://i.imgur.com/9fWdwNv.jpg",
  "https://live.staticflickr.com/8578/16655995541_7817565ea9_k.jpg",
  "https://farm3.staticflickr.com/2815/32761844973_4b55b27d3c_b.jpg",
  "https://farm9.staticflickr.com/8618/16649075267_d18cbb4342_b.jpg"
]

第一点是JsonObject是键值对,JsonArray是JsonObject的集合。因此flickrimages不是一个正确的jsonArray格式。flickrimages是一个字符串列表。

根据您的问题,您不能从两个flickrimages中获得值,因为这个json有两个同名的键“flickrimages”。

因此最好更改来自url的formatofjson

 类似资料:
  • 我有一个资源文件夹/包在我的项目的根,我“不”想加载某个文件。如果我想加载某个文件,我会使用class.getResourceStream,我会很好!!我实际上想要做的是在资源文件夹中加载一个“文件夹”,循环该文件夹中的文件,并获得每个文件的流并读取内容...假设在运行时之前未确定文件名...我该怎么办?有没有一种方法可以在你的jar文件中得到一个文件夹中的文件列表?请注意,包含资源的Jar文件与

  • 在各种情况下,我多次面对这个问题。它对所有编程语言都是通用的,尽管我对C或Java很满意。 我希望避免一个数组在另一个数组中重复迭代,这将增加执行时间(长度A乘以长度B),这在巨大数组的情况下是太多了。 我们有没有办法在每一个数组中做一次传递来获得公共元素?

  • 下面是我到目前为止的代码,我将Json放在一个字符串中: }

  • 问题内容: 我在main中调用了swap方法,但它没有任何改变。我究竟做错了什么? 我的代码产生 以正常的升序排列,我希望它交换第4个和第15个元素。 问题答案: 移动方法调用:- 在您的for循环之外。因为,如果您的循环运行次数,则不会影响阵列。 另外,您需要先初始化数组,然后才能实际交换元素。调用之前需要执行的操作。

  • 我想做一个模板,在那里我可以输入一个索引,它会给我在那个索引的类型。我知道我可以用来实现,但我想自己实现它。例如,我想这样做, ...它会给出位置的类型(因为数组是从0开始索引的)。我怎么能这么做?多谢了。