gpt4 book ai didi

java - 使用 JSON (GSON) 将 PHP 关联数组传输到 Java Map

转载 作者:行者123 更新时间:2023-11-30 03:38:57 25 4
gpt4 key购买 nike

我正在使用 PHP 将 JSON 编码的关联数组返回给客户端。该数组是通过循环 MySQL 数据库查询的结果集来构造的。为了简单起见,我们不显示返回结果集的所有代码,而是假设查询的一个可能输出在 PHP 中生成以下关联数组:

$ResultRows = array(
"10 m" => 10,
"100 m" => 100,
"1000 m" => 1000
);

echo json_encode($ResultRows);

json_encode 生成的 JSON 字符串如下所示:

{"10 m":10,"100 m":100,"1000 m":1000}

如您所见,它像对象一样进行编码,每个键值对看起来都像属性名称和值。

现在,运行 Java 的客户端会收到这个 JSON 编码的字符串。我想创建 LinkedHashMap<String, Double> 的实例由这些值填充。但是,由于它不像数组那样进行编码,因此我很难了解如何使用 GSON 对其进行解码。有什么想法吗?

我可以简单地更改 PHP 并创建一个简单的对象来保存键/值对并返回这些对象的常规数组,但我希望尽可能保留 PHP 脚本,因为其中有相当多的脚本改变。

最佳答案

您可以使用 TypeToken 类向 fromJson 方法提供类型,因此它会是这样的:

public class Test {
public static void main(String[] args) {
String json ="{\"10 m\":10,\"100 m\":100,\"1000 m\":1000}";
LinkedHashMap<String, Double> map = new Gson().fromJson(json, new TypeToken<LinkedHashMap<String, Double>>(){}.getType());
System.out.println(map);
}
}

哪个输出:

{10 m=10.0, 100 m=100.0, 1000 m=1000.0}

关于java - 使用 JSON (GSON) 将 PHP 关联数组传输到 Java Map<String, Double>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27206324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com