如何在 Java Android App 中使用从 Webserver 检索到的 JSON 来动态创建和使用对象

Posted

技术标签:

【中文标题】如何在 Java Android App 中使用从 Webserver 检索到的 JSON 来动态创建和使用对象【英文标题】:How to use JSON retrieved from Webserver in Java Android App to create and use Objects dynamically 【发布时间】:2020-12-26 13:33:39 【问题描述】:

我正在第一次构建一个带有 Web 服务器(带 LAMP 的 Raspberry Pi 4)连接的 Java android 应用程序。

有一个数据库表“products”,其中包含所有产品(Product_id、productName、price)。我正在通过 php API 检索 JSON 数组。

在应用程序启动时,我想获取所有产品并从中创建 Java 对象,这样我就可以在我的应用程序的片段中动态显示所有产品和价格。请注意,产品的数量和价格可能会发生变化,因此我需要这种方法来动态创建产品。

由于我以前从未这样做过,所以我被卡住了。我知道如何在我的代码中获得响应,但我需要帮助是将响应转换为 Java 对象。有什么建议你通常会怎么做?

这是我的 JSON:

"status": 200,
"info": [
    
        "Product_id": "1",
        "product": "Coca Cola",
        "price": "3"
    ,
    
        "Product_id": "2",
        "product": "Orange Juice",
        "price": "2.5"
    ,
    
        "Product_id": "3",
        "product": "Apple Juice",
        "price": "2.5"
    ,
    
        "Product_id": "4",
        "product": "Beer",
        "price": "1.5"
    ,
    
        "Product_id": "5",
        "product": "Energy Drink",
        "price": "3"
    ,
    
        "Product_id": "6",
        "product": "Gin Tonic",
        "price": "5"
    ,
    
        "Product_id": "7",
        "product": "Water",
        "price": "1"
    ,
    
        "Product_id": "8",
        "product": "Soda",
        "price": "1"
    ,
    
        "Product_id": "9",
        "product": "Ticket",
        "price": "30"
    
    ]

【问题讨论】:

如果你想将你的json反序列化为你的数据模型来动态处理,那么你可以使用Gson库:YourData yourData = Gson().fromJson(json, YourData.class);就是这样,现在你有了一个 yourData 对象。 使用 Gson 将您的响应 json 映射到 Java 对象。 Gson 【参考方案1】:

我刚刚使用了 Gson,正如 Manuel 和 Ibrahim 建议的那样。谢谢!

【讨论】:

以上是关于如何在 Java Android App 中使用从 Webserver 检索到的 JSON 来动态创建和使用对象的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Java (Servlet) 验证来自 In-App Billing Android Market 的签名数据

如何在Delphi XE7下写一个Android APP

如何在Delphi XE7下写一个Android APP

微信app支付(android端+java后台)

从 app-Engine 上的 java 类向 Android 客户端发送 PUSH 通知

如何从 android app bundle 分发支持版本?