Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java解析Json文件_Java_Json - Fatal编程技术网

用java解析Json文件

用java解析Json文件,java,json,Java,Json,对于此json文件 { "Name": "crunchify.com", "Author": "App Shah", "Company List": [ "Compnay: eBay", "Compnay: Paypal", "Compnay: Google" ] } 我用了那些密码 Object obj = parser.parse(new FileReader(

对于此json文件

{
    "Name": "crunchify.com",
    "Author": "App Shah",
    "Company List": [
        "Compnay: eBay",
        "Compnay: Paypal",
        "Compnay: Google"
    ]
}
我用了那些密码

Object obj = parser.parse(new FileReader(
                        "G:/Contextual Search/balll.json"));

                JSONObject jsonObject = (JSONObject) obj;
                    String name = (String) jsonObject.get("Name");
                String author = (String) jsonObject.get("Author");
                JSONArray companyList = (JSONArray) jsonObject.get("Company List");

                System.out.println("Name: " + name);
                System.out.println("Author: " + author);
                System.out.println("\nCompany List:");
                Iterator<String> iterator = companyList.iterator();
                while (iterator.hasNext()) {
                    System.out.println(iterator.next());
                }

一种选择是始终迭代JSON字段,如您在问题中所示。另一个更好的选择是将JSON反序列化为对象。许多JSON库都支持此功能。例如,使用,您的代码看起来像

class Group {
    String group;
    String season;
    MyPerson person;
}

class Person {
    String gender;
    double age;
    int id;
    MyPreference[] preferences;
}

class Preference {
    int rating;
    String documentId;
    String[] tags;
}
然后要反序列化JSON

String json = "Your JSON ...";
Group group = new Gson().fromJson(json, Group.class);

这是使用JSON的工作代码

 try {
  String responseString = "{\n"
  + "    \"Name\": \"crunchify.com\",\n"
  + "    \"Author\": \"App Shah\",\n"
  + "    \"Company List\": [\n"
  + "        \"Compnay: eBay\",\n"
  + "        \"Compnay: Paypal\",\n"
  + "        \"Compnay: Google\"\n"
  + "    ]\n"
  + "}";
  JSONParser parser = new JSONParser();
  Object obj = parser.parse(new String(responseString));
  JSONObject Object_index0 = (JSONObject) obj;
  String obj21 = Object_index0.get("Name").toString();
  String obj22 = Object_index0.get("Author").toString();
  Object obj23 = Object_index0.get("Company List");
  System.out.println("Name=>" + obj21 + "\nAuthor=>" + obj22 + "\nCompany List=> " + obj23);
  JSONArray lang = (JSONArray) Object_index0.get("Company List");
   for (int i = 0; i < lang.size(); i++) {
      System.out.println("Company Name=>" + lang.get(i));
    }
    } catch (ParseException e) {
        e.printStackTrace();
    }
试试看{
字符串responseString=“{\n”
+“\“Name\”:\“crunchify.com\”,\n”
+“\'Author\':\'App Shah\',\n”
+“\“公司列表\”:[\n”
+“\“公司:易趣\”,\n”
+“\“公司:贝宝\”,\n”
+“\”公司名称:谷歌\“\n”
+“]\n”
+ "}";
JSONParser=新的JSONParser();
objectobj=parser.parse(新字符串(responseString));
JSONObject Object_index0=(JSONObject)obj;
字符串obj21=Object_index0.get(“Name”).toString();
字符串obj22=Object_index0.get(“Author”).toString();
Object obj23=Object_index0.get(“公司列表”);
System.out.println(“Name=>”+obj21+“\nautor=>”+obj22+“\n公司列表=>”+obj23);
JSONArray lang=(JSONArray)Object_index0.get(“公司列表”);
对于(int i=0;i”+lang.get(i));
}
}捕获(解析异常){
e、 printStackTrace();
}
并添加org.json.simple jar。如需进一步澄清,请询问
很乐意帮忙。谢谢

您可以利用jakson库自动反序列化json访问链接查看此链接,使用GSON库反序列化json(包括嵌套json)使用任何库(如GSON和JACKSON)将json解析为对象,反之亦然,这始终是一个最佳选择。有许多文件我如何使用它们以及我需要解决哪些问题如果这些文件都与上面的文件具有相同的结构,那么您只需将所有文件读入字符串,并使用
fromJson
方法相同的
类。如果文件具有不同的JSON结构,则会变得有点复杂。您可能需要为每种类型的JSON结构声明类。
 try {
  String responseString = "{\n"
  + "    \"Name\": \"crunchify.com\",\n"
  + "    \"Author\": \"App Shah\",\n"
  + "    \"Company List\": [\n"
  + "        \"Compnay: eBay\",\n"
  + "        \"Compnay: Paypal\",\n"
  + "        \"Compnay: Google\"\n"
  + "    ]\n"
  + "}";
  JSONParser parser = new JSONParser();
  Object obj = parser.parse(new String(responseString));
  JSONObject Object_index0 = (JSONObject) obj;
  String obj21 = Object_index0.get("Name").toString();
  String obj22 = Object_index0.get("Author").toString();
  Object obj23 = Object_index0.get("Company List");
  System.out.println("Name=>" + obj21 + "\nAuthor=>" + obj22 + "\nCompany List=> " + obj23);
  JSONArray lang = (JSONArray) Object_index0.get("Company List");
   for (int i = 0; i < lang.size(); i++) {
      System.out.println("Company Name=>" + lang.get(i));
    }
    } catch (ParseException e) {
        e.printStackTrace();
    }