Java 使用googlegson解析Json提要
我想知道如何按项目解析JSON提要(例如,每个项目的url/title/description)。我已经查看了doc/api,但是它对我没有帮助 这就是我目前得到的Java 使用googlegson解析Json提要,java,json,parsing,gson,Java,Json,Parsing,Gson,我想知道如何按项目解析JSON提要(例如,每个项目的url/title/description)。我已经查看了doc/api,但是它对我没有帮助 这就是我目前得到的 import com.google.gson.Gson; import com.google.gson.JsonObject; public class ImportSources extends Job { public void doJob() throws IOException { String j
import com.google.gson.Gson;
import com.google.gson.JsonObject;
public class ImportSources extends Job {
public void doJob() throws IOException {
String json = stringOfUrl("http://feed.test/all.json");
JsonObject jobj = new Gson().fromJson(json, JsonObject.class);
Logger.info(jobj.get("responseData").toString());
}
public static String stringOfUrl(String addr) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
URL url = new URL(addr);
IOUtils.copy(url.openStream(), output);
return output.toString();
}
}
取决于实际的JSON格式。实际上,您可以创建一个与JSON格式匹配的自定义Javabean类。JSON中的任何字段都可以映射为
String
、Integer
、Boolean
等Javabean属性。任何数组都可以映射为List
属性。任何对象都可以映射为另一个嵌套的Javabean属性。它大大简化了Java中的进一步处理
如果没有您这边的JSON字符串示例,它只是猜测它的样子,所以我不能在这里给出一个基本示例。但我之前也发布过类似的答案,您可能会发现它很有用:
Gson也有一个,你可能会发现它也很有用。我不知道Gson是否可以做流式/增量绑定(我认为它没有)
有没有特定的理由去考虑那个特定的图书馆?其他Java JSON处理库也允许这样的处理(您可以查看其他答案的链接,了解一些想法),因为它在处理大型提要时非常重要。Gson 1.4有一个新的API JsonStreamParser,允许您从流中逐个解析多个JSON对象。您可以为JSON对象创建相应的java类。整数、字符串值可以按原样映射。Json可以这样解析-
Gson gson = new GsonBuilder().create();
Response r = gson.fromJson(jsonString, Response.class);
下面是一个例子-我使用ROME作为RSS源,我使用的框架包含gson,这就是为什么我尝试使用它,但我对任何其他库开放。好的。正如我所说,我认为GSON只做完整的文档绑定,但我不是100%。另一种选择是,Jackson()允许增量绑定以及多种其他操作模式。其工作方式是,您需要为main获取一个JsonParser,迭代main JSON数组或对象,并调用parser.readValueAs()进行实际绑定。如果文档没有足够的指针,用户邮件列表可以帮助您了解详细信息。感谢您的回答,我已尝试将示例应用于以下提要:。我没有得到除null以外的任何其他值。我是否需要创建两个组:流和推特?