Java-javax.json-编译错误:“0”;找不到符号“;对于.getValueType()-Can';我似乎不明白为什么

Java-javax.json-编译错误:“0”;找不到符号“;对于.getValueType()-Can';我似乎不明白为什么,java,json,command-prompt,notepad,Java,Json,Command Prompt,Notepad,我有一个数据库,通过我的代码,我将数据库放入一个JsonArray,并开始迭代JsonArray(只查找JSONObject)。从这里开始,我相信我有了这个设置,这样我就可以遍历每个JsonObject的属性。但是,每个JsonObject都包含Json字符串和Json数组。现在,我正在进行实验,所以我尝试为数组创建一个手动异常,基本上我是如何尝试设置它的,只有在处理Json字符串的情况下,才执行您的工作 import javax.json.Json; import javax.json.Jso

我有一个数据库,通过我的代码,我将数据库放入一个JsonArray,并开始迭代JsonArray(只查找JSONObject)。从这里开始,我相信我有了这个设置,这样我就可以遍历每个JsonObject的属性。但是,每个JsonObject都包含Json字符串和Json数组。现在,我正在进行实验,所以我尝试为数组创建一个手动异常,基本上我是如何尝试设置它的,只有在处理Json字符串的情况下,才执行您的工作

import javax.json.Json;
import javax.json.JsonReader;
import javax.json.JsonStructure;
import javax.json.JsonObject;
import javax.json.JsonArray;
import javax.json.JsonValue;
import java.util.Iterator;
import java.util.Collection;
import java.io.FileReader;
import java.io.IOException;

public class DataTest
{
public static void main(String[]args) throws IOException
{
    String strValue = "";
    JsonReader reader = Json.createReader(new FileReader("Elements.JSON"));
    JsonObject jsonst = reader.readObject();

    JsonArray elements = jsonst.getJsonArray("Elements");
    for (int i = 0; i < elements.size(); i++) 
    {
        JsonObject element = elements.getJsonObject(i);
        Collection<String> elementValues = element.keySet();
        Iterator<String> elementKeys = elementValues.iterator();
        while(elementKeys.hasNext())
        {
        //Error is over here!!!
            if(elementKeys.next().getValueType().equals(JsonValue.ValueType.STRING))
            {
                String elementKey = (String)elementKeys.next();
                strValue = element.getString(elementKey);
                System.out.println(strValue);
            }
        }
    }

    reader.close();
}
}
我怀疑这可能与子接口、超级接口、实现的类等有关。本质上,尝试将方法与无法访问该方法的内容一起使用。然而,据我所知,这应该是可行的

以下是您可能需要的api文档:

把我的问题清楚地写下来。。。为什么编译器给我一个“找不到符号”?我必须在代码中更改什么才能修复此问题

我正在使用什么程序、版本等

记事本

命令提示符

爪哇8

javax.json-1.0.jar


请保留javax.json和java的答案。

之所以出现错误,是因为
elementKeys.next()
返回一个
字符串,该字符串没有
getValueType()
方法。您不需要if检查,也不需要强制转换
(String)elementKeys.next()。只要删除它们,就可以了。

elementsKey.next()
返回一个字符串,该字符串不包含方法
getValueType()
。可能是这样。如果我这样做的话,我会遇到另一个问题(这个问题在我对上面评论的回复中有描述),那么由于某种原因,这个评论现在丢失了。我猜它被删除了。因此,问题在于strValue=element.getString(elementKey);计划是,我迭代json对象值,将该值分配给一个字符串,然后将该字符串传递到类的实例中。(该类尚未制作,因此现在我正在打印字符串)。数组包含需要格式化的字符串。我首先要确保代码的其余部分工作正常。我需要if语句来告诉程序跳过数组。新的错误是我试图使用.getString来获取数组(一旦我到达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"
        }
    ]
    }
}