【问题标题】:error: non-static method get(Object) cannot be referenced from a static context错误:不能从静态上下文引用非静态方法 get(Object)
【发布时间】:2016-01-29 14:42:16
【问题描述】:

如下代码所示:

JavaApplication1.java:34:错误:不能从静态上下文引用非静态方法 get(Object)

JSONArray cars = (JSONArray) JSONObject.get("cars");
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class JavaApplication1 {

    @SuppressWarnings("unchecked")
    public static void main(String[] args) {

        JSONParser parser = new JSONParser();

        try {
            JSONArray a = (JSONArray) parser.parse(new FileReader("C:/Users/Glambert/Dropbox/java/New folder/perfection/UPdate/json.txt"));

            for (Object o : a)
            {
                JSONObject person = (JSONObject) o;

                String name = (String) person.get("name");
                System.out.println(name);

                String city = (String) person.get("city");
                System.out.println(city);

                String job = (String) person.get("job");
                System.out.println(job);

                JSONArray cars = (JSONArray) JSONObject.get("cars");

                for (Object c : cars)
                {
                    System.out.println(c+"");
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

有人知道为什么会这样吗?

(顺便说一下,这段代码是在网上找到的,我编辑了它以测试运行,这样我就可以创建一个新代码来接收不同类型的txt文件。)

项目:来自 StackOverflow 页面的代码 How to read json file into java with simple JSON library

代码作者:https://stackoverflow.com/users/1212960/greg-kopff

【问题讨论】:

标签: java json-simple


【解决方案1】:

检查这一行

 JSONArray cars = (JSONArray) JSONObject.get("cars");

改变它
 JSONArray cars = (JSONArray) person.get("cars");

问题是因为您直接在类上调用 get 方法。

【讨论】:

  • @kviveks17 嗨,维韦克!改变有效!谢谢!但是,如果我只想获得一组信息怎么办,例如。只有第一组信息?
  • 你能简单告诉我吗,我没听懂你的问题。
  • 嗨维维克!我设法解决了这个问题!无论如何感谢您的帮助!
猜你喜欢
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多