【问题标题】:Converting a hash map to json in android在android中将哈希映射转换为json
【发布时间】:2017-09-05 10:53:45
【问题描述】:

我有可以转换为 json 值的集合

Map<String,String> mSizes

在这里,我正在使用及其工作方式转换为 json

Gson gson = new Gson();
mStruct = gson.toJson(mSizes);

我有另一个收藏

 Map<String,Map<String,String>> mSizesNested;
 Gson gson = new Gson();
 mStruct = gson.toJson(mSizesNested);

我收到{},如何解决这个问题

【问题讨论】:

标签: java gson


【解决方案1】:

你可以用这个

JSONObject mapToObject = new JSONObject(mSizes);

它只适用于Map&lt;String, String&gt;

【讨论】:

【解决方案2】:

只有这个你做错了,你只是调用 Gson 类,你必须调用 GsonBuilder。

Gson gson = new GsonBuilder().create();
String json = gson.toJson(mSizesNested);

【讨论】:

  • 从什么时候开始需要构建器创建Gson 实例?请出示一些证据证明这是必要的。
  • 要使用的主要类是 Gson,您可以通过调用 new Gson() 来创建它。还有一个类 GsonBuilder 可用,可用于创建具有各种设置(如版本控制等)的 Gson 实例。此外,当我们需要进行自定义序列化和反序列化时使用 GsonBuilder 。希望能回答您的更多问题link
  • 在您的 sn-p 中,您没有配置 any 自定义序列化/反序列化,因此不清楚您为什么建议他们使用 GsonBuilder。您的回答还表明这是整个问题,使用 Gson 而不是通过 GsonBuilder 实例化它是完全错误的。
【解决方案3】:

另一种将 Map 转换为 json 的方法 是

new JSONObject(map);

现在你的问题是关于转换

Map<String,Map<String,String>> mSizesNested;

到 json 首先将每个 msize 映射转换为 jsonobject 然后映射

Map&lt;String,Map&lt;String,jsonobject.toString&gt;&gt; mSizesNested;

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2014-08-21
    • 1970-01-01
    • 2011-12-10
    • 2012-12-05
    • 2011-01-16
    • 2011-05-18
    • 2015-10-27
    • 2011-10-25
    • 1970-01-01
    相关资源
    最近更新 更多