我一直在尝试遵循这个解决方案 How to find specified name and its value in JSON-string from Java?
然而,这似乎没有意义。
我从一个字符串中定义了一个新的 gson 对象:
此处的字符串示例:http://api.soundrop.fm/spaces/XJTt3mXTOZpvgmOc
public void convertToJson()
{
Gson gson = new Gson();
Object gsonContent = gson.fromJson( stringContent, RadioContent.class );
}
然后尝试返回一个值:
public Object getValue( String find )
{
return gsonContent.find;
}
最后它被称为:
public static void print( String find = "title" )
{
Object value = radioContent.getValue( find );
System.out.println( value );
}
但是我收到一个错误:
java: cannot find symbol
symbol: variable find
location: variable gsonContent of type java.lang.Object
全类:
主类:http://pastebin.com/v4LrZm6k
radio 类:http://pastebin.com/2BWwb6eD
最佳答案
这是 java 。字段根据对象引用的声明类型进行解析。
根据您的编译器错误, gsonContent
是 Object
类型的变量。 Object
没有 find
字段。
您已经告诉 Gson 要反序列化为什么类型,因此只需将 gsonContent
变量设为该类型
RadioContent gsonContent = gson.fromJson( stringContent, RadioContent.class );
此外,您似乎正在使用局部变量隐藏实例
gsonContent
字段。您也可以执行以下操作
JsonObject jsonObject = gson.fromJson( stringContent, JsonObject.class);
jsonObject.get(fieldName); // returns a JsonElement for that name