当前位置: 首页 > 知识库问答 >
问题:

Java-javax.json-编译错误:找不到符号. getValueType()-似乎不知道为什么

丘友樵
2023-03-14

我有一个数据库,通过我的代码,我将数据库放入一个JsonArray,并开始迭代JsonArray(只查找JsonObjects)。从这里开始,我相信我已经有了这个设置,所以我可以迭代每个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();
}
}

我相信我有正确的导入,但是当我尝试编译它时,编译器在. getValueType()方法中给我“找不到符号”。(我留下了一条注释,说明“错误在这里!!!”在我的代码中,此方法的行就在该注释的正下方)

我还检查了比较的格式,以下是从中复制和粘贴的:http://www.programcreek.com/java-api-examples/index.php?api=javax.json.JsonStringif((results.getValueType())。等于(JsonValue.ValueType.STRING))

以下是我数据库的一小部分:

{
"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"
        }
    ]
    }
}

我怀疑这可能与子接口、超级接口、实现的类等有关。本质上,试图将某个方法用于无法访问该方法的对象。然而,就我的理解而言,这应该是可行的。

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

http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html

http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html

https://docs.oracle.com/javaee/7/api/javax/json/JsonValue.html

https://docs.oracle.com/javaee/7/api/javax/json/JsonObject.html

https://docs.oracle.com/javaee/7/api/javax/json/JsonArray.html

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

我使用的是什么程序、版本等?

记事本

命令提示符

Java 8

javax。json-1.0。罐子

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

共有1个答案

文鸣
2023-03-14

出现错误是因为elementKeys。next()返回一个字符串,该字符串没有getValueType()方法。您不需要if检查,也不需要强制转换(String)elementKeys。下一步() 。只要去掉这些,你就会没事的。

 类似资料:
  • 问题内容: 嘿,我刚开始我的第一本Java编程书籍,所以这应该很容易解决。弄乱我对条件句的新知识,发现标题错误。 这是代码: 当我尝试编译时: 问题答案: 错误消息告诉您变量“输入”在您的作用域中不存在。您可能想使用Scanner对象,但将其命名为“ x”,而不是“ input”。 应该修复它。

  • 问题内容: 当代码到达递归调用增量时,我收到错误找不到符号,我不知道为什么?这是增量代码。任何帮助将不胜感激。 编辑:我真的是Java的新手,所以可以做的答案越基本越好。好的,所以我收到的错误是:BigNatural.java.35:找不到符号符号方法增量()位置:类java.lang.String temp.increment() 并在此处清除所有其他问题,是整个代码。 }公共类BigNatur

  • 嘿,我刚刚开始我的第一本关于Java的编程书,所以这应该是一个简单的修复。把我对条件句的新知识弄得乱七八糟的,结果我得到了标题错误。 代码如下: 当我尝试编译:

  • 我有这样的代码:获取一个文本文件,并将其转换为字符串,然后将字符串的部分分离为ArrayList的不同元素。 然而,当我试图编译它时,它给了我两个错误: javac Message.java Message.java:31:找不到符号symbol:变量输入位置:类消息while(input.HasNextLine()){^Message.java:32:找不到符号symbol:变量输入位置:类消息

  • 问题内容: 美好的一天,我在同一目录中有两个类Map和Field。我成功地编译了Field.java,但是当我编译Map.java时,我得到了: 这是两个类的代码: 对于Field.java(如有必要): 我分别编译了Field.java和Map.java:javac Field.java没有返回任何错误,但是javac Map.java返回了以上错误。 问题答案: 我仍然不清楚您的问题到底在哪里

  • 我一直在尝试使用Eclipse和Forge编译Minecraft mod,但我只是遇到错误,我想这是与链接Minecraft库有关,但不确定这是我的代码 我正在遵循一个指南,应该在最后得到一条“构建成功”的消息。指南是https://blog.usejournal.com/a-beginners-guide-to-modding-Minecraft-9A42536495F6 这里有个错误