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,回答错误:源代码
字段确实代表一个列表
,因为它有方括号[
。。。