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

Kotlin Gson解析问题

濮金鑫
2023-03-14

val homeFeed=gson.fromjson(正文,列表::class.java)

我的代码:

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import com.google.gson.GsonBuilder
import com.google.gson.annotations.SerializedName
import kotlinx.android.synthetic.main.activity_main.*
import okhttp3.*
import java.io.IOException
import java.util.*

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    okht()
}

fun okht(){
    val url = "https://jsonplaceholder.typicode.com/posts"
    val request = Request.Builder().url(url).build()
    val client = OkHttpClient()
    client.newCall(request).enqueue(object: Callback{

        override fun onResponse(call: Call, response: Response) {
            val body = response?.body()?.string()

           val gson = GsonBuilder().create()
           val homeFeed = gson.fromJson(body, list::class.java)
            println(homeFeed)
        }

        override fun onFailure(call: Call, e: IOException) {
            println("fail")
        }
    })
}
}

class list(val userId: Int, val id: Int, val title: String, val body: String)

共有1个答案

乜坚成
2023-03-14

它期待一个列表对象,但正在查找一个字符串。检查响应是否是您所期望的。

try:val listType=new typeToken>(){}.gettype()val homeFeed=new Gson().fromjson(jsonArray,listType)

另外,我建议更改列表类,使其称为更合适的类。类名应该以大写字母开头。

 类似资料:
  • 问题内容: 我正在尝试在我的android应用程序中解析Json的链接是https://www.buzzador.com/apps/present_software/webservice/index.php?op=ProductQ&campaign_id=607&userid=10776 当我将其放入Json对象时,它给我带来错误错误是:08-31 14:40:52.281:WARN / Syst

  • 我花了相当多的时间阅读GraphQL教程,但不幸的是,它们似乎没有涵盖足够的深度,我无法理解。我真的很感谢你对这个现实世界的例子的帮助。 在示例中,查询位于解析器对象的根;我可以让它在单级查询中正常工作。但是,当我尝试解析嵌套查询时,嵌套解析程序从未被调用。让我非常困惑的是,我发现graphql网站上没有发布的每一个教程都放在一个查询对象中,并将它们的查询嵌套在下面,而不是根级别。 考虑以下模式:

  • 我正在使用Jsoup解析短html文档,该文档包含对结果进行某些逻辑操作所需的一些自定义标记 这样地: 在这种情况下,内部内容似乎丢失了,outerHtml()方法显示如下: 但是如果“show if”标签包含一个简单的文本,比如你好,它就会像预期的那样工作。 有什么想法吗?谢谢你。

  • 问题内容: 这段代码在Swift 1.1中运行良好…只是试图找出1.2中所做的更改以使其不兼容: 它给了我错误: 无法使用类型为’(String,block:(PFObject !, NSError)- > Void)的参数列表调用’GetObjectInBackgroundWithId’ 有任何想法吗?谢谢! 问题答案: 现在,使用Swift 1.2时,您应该更加谨慎地展开可选项。因此,在具有和

  • 首先,根据句子的大小,解析在小的句子集上平稳运行--从200ms到1s的顺序。 我想实现什么? 我想在1-2小时内解析50L个句子。 不知怎么的,我需要把这个转换成-> 转换为多线程调用。我编写了一个多线程执行器来做这件事,它看起来像这样-> 有什么办法可以做到吗?我能回答先前提出的问题,但没有什么好处。

  • 我对ANTLR相对来说是新的,所以请原谅我。 但是当我试图解析下面的表达式时 我最终出现以下错误: 第1:38行:'''处的令牌识别错误 第1:42行:'''处的令牌识别错误 规则r没有方法或者它有参数 规则'r'的意思是什么?我怎么能理解问题的原因呢?任何帮助都将不胜感激!