java - 无法使用java解析嵌套json文件的键和值

标签 java json

下面是我正在尝试解析的json文件。我想打印所有键和相应的值。

{
 "A":{
   "name":"Ram",
   "gender":"male",
   "designation":"engineer"
 },
 "B":{
  "name":"Shyam",
  "gender":"male",
  "designation":"student"
 },
 "C":{
  "name":"Mohan",
  "gender":"male",
  "designation":"manager"
 }
} 

我尝试过以下代码:

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Iterator;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.simple.parser.JSONParser;

public class FetchJsonNested {
    public static void main(String args[]) throws FileNotFoundException {
        try {
            JSONParser jp=new JSONParser();
            Object obj=jp.parse(new FileReader("C:\\Users\\DELL\\Documents\\NetBeansProjects\\WaterNetwork\\web\\kusharray.json"));
            JSONObject job=(JSONObject)obj;
            Iterator < ? > keys = job.keys();

            while (keys.hasNext()) {
                String key = (String) keys.next();
                System.out.println(key);
                if (job.get(key) instanceof JSONObject) {
                    System.out.println(job.get(key));
                }
            }
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

我已经阅读了许多网站的内容,但没有人按照我想要的方式工作。我想打印所有键和相应的值。

最佳答案

按照您在示例中所做的那样使用 org.json :

String jsonStr = "{\"A\":{\"name\":\"Ram\",\"gender\":\"male\",\"designation\":\"engineer\"},\"B\":{\"name\":\"Shyam\",\"gender\":\"male\",\"designation\":\"student\"},\"C\":{\"name\":\"Mohan\",\"gender\":\"male\",\"designation\":\"manager\"}}";
JSONObject json = new JSONObject(jsonStr);

for (Object key : json.keySet().toArray()){
    JSONObject data = json.getJSONObject(key.toString());
    System.out.println("json :" + data.toString());
    System.out.println("name :" +data.getString("name"));
    System.out.println("gender :" +data.getString("gender"));
    System.out.println("designation :" +data.getString("designation"));
}

现在您可以用文件阅读器替换我的第一行“String jsonStr = ...”。

关于java - 无法使用java解析嵌套json文件的键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44692908/

相关文章:

java - 充气城堡 : Signed Certificate with an existing CA

android - 如何使用免费 API 获取 NSE 和 BSE 的所有股票列表公司名称和代码?

java - 我如何从服务器获取和设置android中的API(从服务器获取int值)?如何绑定(bind)和实现

php - 是否可以将 JSON 私钥转换为 PKCS12 格式?

javascript - js网格 : Adding a row using json data

java - Tomcat 和 SSL : invalid keystore format

java - 使用 JUnit 测试具有 @PreAuthorize 的服务方法

Java 不同的可用堆大小

java - wicket 1.5 新网址

asp.net-mvc - VB.NET 将查询字符串解析为数组