Java 将字符串转换为gson对象

Java 将字符串转换为gson对象,java,json,gson,Java,Json,Gson,我有一个来自服务器的字符串输出,我试图从字符串中提取一些值 以下是服务器的输出: jsonString = { "MEANING":"reduce", "DISPLAY":"", "TYPE_CD":1, "SELECTED_IND":1, "CNT":1, "SOURCES":[ { "a":1 } ] } 代码: 数据对象类: DataObject { private int MEANING;

我有一个来自服务器的字符串输出,我试图从字符串中提取一些值

以下是服务器的输出:

jsonString =

{
  "MEANING":"reduce",
  "DISPLAY":"",
  "TYPE_CD":1,
  "SELECTED_IND":1,
  "CNT":1,
  "SOURCES":[
              { "a":1 }
            ]
}
代码:

数据对象类:

DataObject
{ 
    private int MEANING;
    private int CNT;
    private String TYPE_CD;
    private String DISPLAY;
    private String MEANING;
    private List<Long> SOURCES;

    public String getSourceTypeMeaning()
     {
       return this.MEANING;
     }

    public String getSourceTypeDisplay() 
     {
       return this.DISPLAY;
     }

    public String getSourceTypeCd() 
     {
       return this.TYPE_CD;
     }

    public int getSourceCount() 
     {
       return this.CNT;
     }

    public List<Long> getSourceList() 
     {
       return this.SOURCES;
     }
}

我无法找到我的代码的问题。

SOURCES
变量应该是
Map
,因为在JSON字符串中
SOURCES
是键值集合
(“a”:1)
,其中“a”是字符串,1是数字


希望这有帮助。

源代码
变量应该是
映射
,因为在JSON字符串中
源代码
是键值集合
(“a”:1)
,其中“a”是字符串,1是数字

希望这有帮助。

检查此项

"SOURCES":[
              { "a":1 }
 ]
这将表示一个地图列表,而不是长列表

因此,将您的
列表
更改为
列表
列表

检查此项

"SOURCES":[
              { "a":1 }
 ]
这将表示一个地图列表,而不是长列表


因此,将您的
列表
更改为
列表
列表
其他答案指出问题出在
字段中,这是正确的,但他们给出的解决方案不正确

您不能仅使用
映射
来解析
字段,因为该字段实际上是一个数组!你有:

"SOURCES": [ ... ]
因为您有方括号
[]
,所以您有一个数组!确实有一个
映射
,但它包含在数组中

因此,您需要正确解析该字段:

private List<Map<String, int>> SOURCES;

其他答案指出问题出在
字段中,这是事实,但他们给出的解决方案不正确

您不能仅使用
映射
来解析
字段,因为该字段实际上是一个数组!你有:

"SOURCES": [ ... ]
因为您有方括号
[]
,所以您有一个数组!确实有一个
映射
,但它包含在数组中

因此,您需要正确解析该字段:

private List<Map<String, int>> SOURCES;

我将代码更改为使用HashMap,但仍然得到一个错误。私有HashMap源;public HashMap getSourceList(){return this.SOURCES;}仍然收到一个错误,说“应该是BEGIN_数组,但在第1行是BEGIN_对象”-1,回答错误:
SOURCES
字段显然是一个JSON数组,因为它有方括号
[]
…我将代码更改为使用HashMap,还是有错误。私有HashMap源;public HashMap getSourceList(){return this.SOURCES;}仍然收到一个错误,提示“应该是BEGIN_数组,但在第1行是BEGIN_对象”-1,回答错误:
SOURCES
字段显然是一个JSON数组,因为它有方括号
[]
…@shanku很抱歉,我没有复制ans。当我提交ans之后,我看到相同的ans已经提交,并且当我开始编写ans时,没有ans存在。-1,回答错误:
源代码
字段确实代表一个
列表,因为它有方括号
[]
…@shanku很抱歉,我没有复制ans。当我提交ans之后,我看到相同的ans已经提交,并且当我开始编写ans时,没有ans。-1,回答错误:
源代码
字段确实代表一个
列表
,因为它有方括号
[
。。。