【发布时间】:2016-03-16 11:22:52
【问题描述】:
我有这个示例 JSON 对象
{
"Elements" : [
{
"name" : "Hydrogen",
"Symbol" : "H",
"atomicNumber" : "1",
"electronegativity" : "2.2",
"group" : "Hydrogen",
"ionCharge1" : "1+",
"ionCharge2" : "1-",
"molarMass" : "1.01",
"naturalState" : "Gas",
"synthetic" : "false",
"diatomic" : "true",
"columnNumber" : "1",
"row" : "1",
"columnCode" : "IA",
"nobleGasConfiguration" : [
{
"term:" : "No Noble Gas Configuration",
"superScript" : "-"
}
],
"electronConfiguration" : [
{
"term" : "1s",
"superScript" : "1"
}
]
}
}
通过以下代码,我将 Json 数据库转换为 JsonStructure。
import javax.json.Json;
import javax.json.JsonReader;
import javax.json.JsonStructure;
import java.io.*;
public class DataTest
{
public static void main(String[]args) throws IOException
{
String strName;
JsonReader reader = Json.createReader(new FileReader("Elements.JSON"));
JsonStructure jsonst = reader.read();
/*strName = jsonst.
* get.JsonObject(String name)
* get.JsonArray(String name)
* get.JsonString(String name).getString()
*/
}
}
我想要做的只是获取“name”的值,该值是“Hydrogen”,这个值将被放置在变量 strName 中。
这几天我一直在努力完成类似这样的基本事情,但任何事情都让我偏离了我的真实意图。其他一切都失败或从未奏效。
我最近的尝试是使用代码底部注释掉的方法,我相信我有完成这项工作所需的方法。 (这些方法从以下链接获得:https://docs.oracle.com/javaee/7/api/javax/json/JsonObject.html)
我试图做的是:
jsonst.getJsonArray("Elements").getJsonObject(0).getJsonString("name").getString();
这给了我一个“找不到符号”编译错误,在“jsonst.getJsonArray(“Elements”)”期间带有 ^
那么,我做错了什么?我怎样才能完成这个简单的任务?
我正在使用哪些程序、文本编辑器、版本等?
- 命令提示符
- 记事本
- Java 8
- javax.json-1.0.jar
请保留 java 和 javax.json 的答案,我慢慢冒险的艰难道路之一是获得一个使用 json 的库。我宁愿不费心去找另一个。
【问题讨论】:
-
我强烈建议使用 IDE 而不是记事本和命令提示符
-
我正在使用命令提示符和记事本,因为这就是我们在计算机科学 120 中所做的。:P 一旦我完成了这个额外的项目,我确实打算看看 IDE
标签: java json command-prompt notepad