我一直在使用JSONObject和JSONReader,但理想情况下,我正在寻找一种混合动力:)
特别是,给定JSON对象流(任意长的JSON数组的一部分),是否有一个帮助程序/库,它一次生成迭代器样式的“
JSONObject”,而无需读取其中的所有内容或不必解析单个原始字段(JsonReader )?
假设API的示例:
JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
reader.beginArray();
while (reader.hasNext())
{
JSONObject obj = reader.readObject();
// do something with 'obj'
}
reader.endArray();
上面,调用readObject解析一些复杂的JSON子树,并将其作为JSONObject返回。
有javax.json.JSONParser
。
输出JSON的示例:
import javax.json.Json;
import javax.json.stream.JsonParser;
...
JsonParser parser = Json.createParser(new StringReader(jsonData));
while (parser.hasNext()) {
JsonParser.Event event = parser.next();
switch(event) {
case START_ARRAY:
case END_ARRAY:
case START_OBJECT:
case END_OBJECT:
case VALUE_FALSE:
case VALUE_NULL:
case VALUE_TRUE:
System.out.println(event.toString());
break;
case KEY_NAME:
System.out.print(event.toString() + " " +
parser.getString() + " - ");
break;
case VALUE_STRING:
case VALUE_NUMBER:
System.out.println(event.toString() + " " +
parser.getString());
break;
}
}
从Java
EE的教程19.4.1读JSON数据使用一个解析器
。它是JavaEE
7
API的一部分,但是可以从https://jsonp.java.net/download.html获得独立的jar
。
在目前早期发布的名为高性能Spark的教科书中,Spark的开发人员注意到: 为了使Spark能够灵活地将一些记录溢出到磁盘上,在中表示函数是很重要的,这样函数就不会强制将整个分区加载到内存中(例如隐式转换为列表)。迭代器有许多方法,我们可以在上面编写函数样式转换,或者您可以构造自己的自定义迭代器。当一个转换直接获取并返回一个迭代器而不强制它通过另一个集合时,我们称之为迭代器到迭代器转换。 注意:
问题内容: 我在想类似的东西: 哪种Java JSON库最适合这种流畅的构建? 更新 :我包GSON,并得到几乎理想的结果...... 问题答案: 我正在使用org.json库,发现它很好并且很友好。 例: 输出:
问题内容: 我有方法必须检查JSON是否有效,该方法在如何检查给定字符串在Java中是否为有效JSON上找到,但是它不起作用。 如果我将此方法与某些字符串一起使用,它将始终返回true。例如: 它给了我, 也给了我 问题答案: 根据如何检查给定字符串在Java中是否为有效JSON,我找到了解决方案但使用库 现在,随机查找的字符串是并且为真。
本章介绍如何使用Java编程语言对JSON对象进行编码和解码。让我们从准备环境开始,使用Java for JSON开始编程。 环境 在开始使用Java编码和解码JSON之前,您需要安装任何可用的JSON模块。在本教程中,我们已经下载并安装了JSON.simple,并将json-simple-1.1.1.jar文件的位置添加到环境变量CLASSPATH中。 JSON和Java实体之间的映射 JSON
我试图翻译这个(简化)代码使用Java-8流: 以下是我尝试过的: 但以上给出了所有
问题内容: 我想知道是否有可能在SAS中使用proc sql从宽有效地转换成长有效。 我知道proc换位比我在下面建议的方法要快得多。但是我的目标之一是避免存储转置表。 例如,假设我有table1作为 我想把它变成 我可以做到这一点; 选择id,’A’作为col1,A作为 来自table1的col2 , 其中A〜=“” 联合选择id,’B’作为col1,B作为 来自table1的col2 , 其中