我一直在寻找Gson库的Streaming实现。但我无法确定是否会像下面这样做一个好的习惯来获得数组的第一个元素。该URL返回一个包含Json数组的InputStream
。如何仅获取JSON中大数组的第一个元素?
JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
reader.beginArray();
Message message = new gson().fromJson(reader, Message.class);
reader.endArray(); // this line
reader.close();
我的问题在于旁边有注释的行。如果我只想获得第一个元素,我应该这样做吗?
请注意,在这里我想知道代码的效率。该代码直接从gson流示例中复制[有一些修改来正确描述情况]。
实际的数组非常大。这就是为什么我不能等待获得整个数组然后获取元素。所以我想在获取第一个元素后立即中止这个过程,然后关闭流。
另外,如果有任何问题,请推荐我任何更好的方法。
谢谢...真的帮了我很多。所以这意味着如果我只是打电话关闭,它会做我的工作...... – Writwick
是的。你已经有了'MessageObject',在那之后调用'reader.close()'并且继续你的快乐方式。 –
好的,现在在下一个序列中,我只收到一个“MessageObject”而不是数组。我应该如何处理它?简单的'gson.fromJson(...)'会很好吗? – Writwick