使用地图数据从服务器解析 JSON

约拿

我目前正在使用RetrofitKotlin构建应用程序到目前为止,我可以从办公服务器解析 JSON。但是,现在我在映射数据时遇到了问题。我已经阅读了 Kotlin 地图,但不能完全理解它。对于来自服务器的 JSON,我无法上传它,因为我公司的数据存在隐私。所以,我将使用虚拟 JSON,但结构与我公司的 JSON 相同。这里是:

{"market":
   "101":
      {"name": "xxx",
       "image": "/folderPath/imageName.jpg"
      }
   "102":
      {"name": "yyy",
       "image": "/folderPath/image2Name.jpg"
      }
}

关于数据类,我使用List<>来初始化数据类,这里是:

data class Product(
  @SerializedName("Market") val Market: List<MarketContent> = listOf()
)

data class MarketContent(
  @SerializedName("Name") val Name: String,
  @SerializedName("Image") val Image: String
)

我在 RecyclerView 适配器中尝试过的是这样的:

class OtherProductAdapter(private val otherProductList: List<MarketContent>, private val clickListener: (MarketContent) -> Unit) :
RecyclerView.Adapter<RecyclerView.ViewHolder>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
    val v = LayoutInflater.from(parent.context).inflate(R.layout.other_product, parent, false)
    return ListOther(v)
}

override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
    (holder as ListOther).bindItem(otherProductList[position], clickListener)
}

override fun getItemCount() = otherProductList.size

class ListOther(itemView: View) : RecyclerView.ViewHolder(itemView){

    private val rImg = itemView.findViewById<ImageView>(R.id.rv_image)

    fun bindItem(t: MarketContent, clickListener: (MarketContent) -> Unit){
        itemView.rv_title.text = t.Name
        Glide.with(itemView.context).load("http://192.168.1.100:3232" +t.Image).into(rImg)
        itemView.setOnClickListener {clickListener(t)}
    }
}
}

这是我的改造

private fun getInto() {
    val apiService = ProductApiService()
    disposable =
            apiService.syncData()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(
                    { result -> intoData(result) },
                    { error -> Log.e("Error", error.message) }
                )
}

private fun intoData(result: Product) {
    rv_view?.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)
    rv_view?.hasFixedSize()
    rv_view?.adapter = OtherProductAdapter(result.Market, { item: MarketContent -> clickedItem(item) })
}

结果,我的应用程序没有显示任何数据,并且有一条消息:

E/错误:java.lang.IllegalStateException:预期为 BEGIN_ARRAY 但在第 1 行 109719 路径 $.Market 处为 BEGIN_OBJECT

帮助我应该如何映射 JSON 数据。提前致谢。

马克西姆·图卢波夫

看来你需要改变映射

@SerializedName("Market") val Market: Map<String, MarketContent> = mapOf()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从远程服务器解析JSON数据

来自分类Dev

无法解析服务器中的JSON数据

来自分类Dev

无法解析服务器中的JSON数据

来自分类Dev

从服务器请求JSON并使用Javascript进行解析

来自分类Dev

JavaScript从服务器解析JSON

来自分类Dev

使用JSON在服务器中插入数据

来自分类Dev

如何使用从服务器接收的 JSON 数据更新 UI?

来自分类Dev

使用服务解析json数据

来自分类Dev

Android JSON解析器将数据的多个副本发送到服务器

来自分类Dev

使用地图格式化JSON

来自分类Dev

无法从服务器获取JSON数据

来自分类Dev

从服务器加载JSON数据

来自分类Dev

无法从json服务器获取数据

来自分类Dev

无法解析来自服务器的Cakephp Jquery Datatable JSON数据

来自分类Dev

UDP服务器在python中解析JSON对象的数据结构

来自分类Dev

ANDROID,从Web服务器解析JSON数据并显示在ListView上

来自分类Dev

无法解析来自服务器的codeigniter&soap-JSON数据

来自分类Dev

ANDROID,从Web服务器解析JSON数据并显示在ListView上

来自分类Dev

如何解析服务器的JSON响应并在比较中使用它

来自分类Dev

在 swift 4 中使用 Alamofire 发出请求时,来自服务器的 JSON 解析错误

来自分类Dev

使用 Swift 4 Decodable 的 JSON/简单文本解析服务器响应

来自分类Dev

使用PHP将JSON数据追加到服务器上的JSON文件中

来自分类Dev

使用JSON xmlHttprequest从Web服务器读取数据库并显示数据?

来自分类Dev

启动节点服务器时解析json对象

来自分类Dev

JSON请求的Rails服务器意外令牌解析错误

来自分类Dev

解析来自服务器的 JSON 并重新排序

来自分类Dev

使用从服务器接收的JSON数据更新视图模型时,刷新Knockout绑定

来自分类Dev

Nodejs服务器,使用Ajax在html客户端中从Python获取JSON数据

来自分类Dev

如何使用Javascript XMLHttpRequest将JSON数据对象发送到服务器?

Related 相关文章

  1. 1

    从远程服务器解析JSON数据

  2. 2

    无法解析服务器中的JSON数据

  3. 3

    无法解析服务器中的JSON数据

  4. 4

    从服务器请求JSON并使用Javascript进行解析

  5. 5

    JavaScript从服务器解析JSON

  6. 6

    使用JSON在服务器中插入数据

  7. 7

    如何使用从服务器接收的 JSON 数据更新 UI?

  8. 8

    使用服务解析json数据

  9. 9

    Android JSON解析器将数据的多个副本发送到服务器

  10. 10

    使用地图格式化JSON

  11. 11

    无法从服务器获取JSON数据

  12. 12

    从服务器加载JSON数据

  13. 13

    无法从json服务器获取数据

  14. 14

    无法解析来自服务器的Cakephp Jquery Datatable JSON数据

  15. 15

    UDP服务器在python中解析JSON对象的数据结构

  16. 16

    ANDROID,从Web服务器解析JSON数据并显示在ListView上

  17. 17

    无法解析来自服务器的codeigniter&soap-JSON数据

  18. 18

    ANDROID,从Web服务器解析JSON数据并显示在ListView上

  19. 19

    如何解析服务器的JSON响应并在比较中使用它

  20. 20

    在 swift 4 中使用 Alamofire 发出请求时,来自服务器的 JSON 解析错误

  21. 21

    使用 Swift 4 Decodable 的 JSON/简单文本解析服务器响应

  22. 22

    使用PHP将JSON数据追加到服务器上的JSON文件中

  23. 23

    使用JSON xmlHttprequest从Web服务器读取数据库并显示数据?

  24. 24

    启动节点服务器时解析json对象

  25. 25

    JSON请求的Rails服务器意外令牌解析错误

  26. 26

    解析来自服务器的 JSON 并重新排序

  27. 27

    使用从服务器接收的JSON数据更新视图模型时,刷新Knockout绑定

  28. 28

    Nodejs服务器,使用Ajax在html客户端中从Python获取JSON数据

  29. 29

    如何使用Javascript XMLHttpRequest将JSON数据对象发送到服务器?

热门标签

归档