- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我怎样才能在 Volley 中获得包含 Array 的 JSONObject?
逻辑
代码
Note: I'm aware that my api function below works if my result is JSON Array, but I'm not sure how to modify it in order to get JSON Object (as my result is)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_posts)
callAPIDemo()
}
// api code
private fun callAPIDemo() {
val mySlugValue: String = intent.getStringExtra("my_slug")
// Instantiate the RequestQueue.
val queue = Volley.newRequestQueue(this)
val url = "https://example.com/api/categories/$mySlugValue"
// Request a string response from the provided URL.
val stringRequest = StringRequest(
Request.Method.GET, url,
Response.Listener<String> { response ->
val jsonArray = JSONArray(response)
val list: ArrayList<Post> = ArrayList()
for (i in 0 until jsonArray.length()) {
val jsonObject = jsonArray.getJSONObject(i)
list.add(parseData(jsonObject))
}
// here you will have the complete list of data in your "list" variable
posts_list.layoutManager = LinearLayoutManager(this)
Log.d("my list", list.toString())
posts_list.adapter = MyPostsRecyclerViewAdapter(list)
},
Response.ErrorListener { error ->
//displaying the error in toast if occurrs
Toast.makeText(applicationContext, error.message, Toast.LENGTH_SHORT)
.show()
})
// Add the request to the RequestQueue.
queue.add(stringRequest)
}
// parsing data
private fun parseData(jsonObject: JSONObject): Post {
var listingObject = Post(
jsonObject.getString("name"),
jsonObject.getString("slug"),
jsonObject.getString("image")
)
return listingObject
}
{
"id": 10,
"name": "...",
"slug": "...",
"icon": "...",
"body": "...",
"image": "...",
"posts": [
{
"id": 2,
"user": "...",
"name": "...",
"slug": "...",
"image": "...",
"body": "...",
"icon": null,
"quote": null,
"video": null,
"created_at": "2019-11-23 06:05:56",
"updated_at": "2019-11-23 06:53:26"
},
// other posts
],
"created_at": "2019-11-23 05:35:31",
"updated_at": "2019-11-26 11:25:17"
}
最佳答案
你可以像这样解析你的json数据
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_posts)
callAPIDemo()
}
private fun callAPIDemo() {
val mySlugValue: String = intent.getStringExtra("my_slug")
// Instantiate the RequestQueue.
val queue = Volley.newRequestQueue(this)
val url = "https://example.com/api/categories/$mySlugValue"
// Request a string response from the provided URL.
val stringRequest = StringRequest(
Request.Method.GET, url,
Response.Listener<String> { response ->
val list: ArrayList<Post> = ArrayList()
getPosts(response,list)
// here you will have the complete list of data in your "list" variable
posts_list.layoutManager = LinearLayoutManager(this)
Log.d("my list", list.toString())
posts_list.adapter = MyPostsRecyclerViewAdapter(list)
},
Response.ErrorListener { error ->
//displaying the error in toast if occurrs
Toast.makeText(applicationContext, error.message, Toast.LENGTH_SHORT)
.show()
})
// Add the request to the RequestQueue.
queue.add(stringRequest)
}
fun getPosts(response: String,list:ArrayList<Post>) {
var jsonObject = JSONObject(response)
val jsonArray = jsonObject.getJSONArray("posts")
for (i in 0 until jsonArray.length()) {
val jsonObject1 = jsonArray.getJSONObject(i)
var listingObject = Post(
jsonObject1.getInt("id"),
jsonObject1.getString("user"),
jsonObject1.getString("slug"),
jsonObject1.getString("image"),
jsonObject1.getString("body"),
jsonObject1.getString("icon"),
jsonObject1.getString("quote"),
jsonObject1.getString("video"),
jsonObject1.getString("created_at"),
jsonObject1.getString("updated_at")
)
list.add(listingObject)
}
}
data class Post ( val id: Int, val user: String?, val slug: String?,
val image: String?, val body: String?, val icon: String?,
val quote: String?, val video: String?, val created_at: String?,
val updated_at: String?
)
关于android studio org.json.JSON.typeMismatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60142682/
我创建了:https://jira.spring.io/browse/BATCH-2778 我正在开发 Spring Batch + Redis (Spring Data Redis) 示例。在这个例
我有一个需要double的字段。如果您输入 String,则默认消息类似于: Failed to convert property value of type java.lang.String to
当我使用 Postman 调用配置 API 时,我收到以下 json 响应。在此响应中,两个 apiVersion 键是数字而不是字符串。 { "data": { "avail
在Spring Webflow 2.0.x的上下文中...... 我通过在我的 messages.properties 中使用以下内容来处理表单绑定(bind)“typemismatches”,即尝试
我正在尝试使用 JSONDecoder 将 JSON 转换为 Swift 中的结构,所以我写了所有的结构,修改了几个小时,但它仍然给我这个错误。我不知道是否有办法看到给出这个的行。 我将在下面发布我的
我在我的 Android 应用程序的下面第 3 行收到 JSON.typeMisMatch 错误。我不明白为什么,因为我可以在其他程序中访问这个数组。 1 JSONObject
我正在尝试使用 JSONDecoder 将 JSON 转换为 Swift 中的结构,所以我写了所有的结构,修改了几个小时,但它仍然给我这个错误。我不知道是否有办法看到给出这个的行。 我将在下面发布我的
我在网络上和 stackoverflow 中进行了一些搜索,以了解如何处理我在其中一个屏幕上收到的以下消息: Failed to convert property value of type [jav
我有一个用户域类,其中有一个名为 Gender 的枚举字段。它具有男性和女性的值(value)。当我在 GSP 页面上表示它时,它显示为下拉列表。为了测试 web 应用程序的安全性,我使用 fireb
我怎样才能在 Volley 中获得包含 Array 的 JSONObject? 逻辑 代码 Note: I'm aware that my api function below works if my
我正在尝试设置 List到 Java 对象。 设置函数为: ResponseEntity response = bcInsertService.addNewClip(new PrmBcClipInse
我正在尝试在 Android 应用程序中转换以下 JSON: [ { "patient_id": "16", "patient_firstname": "Ion
这让我们很困惑。我有一个标准的数据透视表,上面有一个报告过滤器,允许选择多个项目。我可以通过以下方式获取报告过滤器中的选定项目: Dim pi As PivotItem For Each pi In
我正在尝试将数据从静态 JSON 文件解析到我的实体,但出现以下错误:序列化 json typeMismatch 时出错 这个想法是创建一个公式收集应用程序。每次应用程序启动时都应通过加载 JSON
我正在尝试从 URL 解析 JSON,我想我已经尝试了 100 种不同的方法,但到目前为止我还没有找到正确的解决方案。我相信我遇到的问题是我收到的 JSON 中的数据结构。每个都有一个以“0”开头并递
基本上,我希望能够阻止 Spring 检查我的字段是否包含错误数据,而是让我手动处理所有验证和异常。 假设我有一个类: public class MyClass { int aNumber;
我在 Spark GraphX 中使用 Pregel 编写了我的算法。但不幸的是我得到 TypeMismatch 错误。 我加载图表:val my_graph= GraphLoader.edgeLis
下面是我的代码: public class JSON extends Activity { TextView json; @Override public void onCre
我正在使用 Codable 协议(protocol)从 Web API 解码 JSON。我的此 API 的 Swift 数据模型包括类继承(子类)和组合(对象作为其他对象的属性)。在 JSON 中,相
我有一个 JavaScript validation framework我创建的,我正在尝试向它添加 HTML 验证。在我的框架中,验证是通过使用 data- 属性将验证约束绑定(bind)到元素来完
我是一名优秀的程序员,十分优秀!