【问题标题】:extract a json node from the json从 json 中提取一个 json 节点
【发布时间】:2015-10-12 09:21:23
【问题描述】:

如何从另一个 json 中提取 json 节点。例如,我想获取“公司名称”,即“kjh”。但是使用这个 json 解析器代码,我能够获取整个 json 而不仅仅是公司名称..有人可以帮忙吗

jsonObject = (JSONObject) new org.json.simple.parser.JSONParser().parse(domainRequest);
final String companyName = (String) jsonObject.get("companyName");

这里是 Json 内容:

{"companyName":{"Company Name:":"kjh","Address 1:":"kjhhkh","Address 2:":"hkjhkj","Address 3:":"hkjhhkj","Address 4:":"kjhj","Postcode:":898,"Default Email Address:":"kkjkh@y","Company Registration No:":98,"VAT No:":89098,"Website":"http://localhost:9000/#/support/domain/request?formLinkUuid=7f000101-4fdf-160d-814f-dfa60dc80000"}}

{"companyName" : {
     "Company Name:":"kjh",
     "Address 1:":"kjhhkh",
     "Address 2:":"hkjhkj",
     "Address 3:":"hkjhhkj",
     "Address 4:":"kjhj",
     "Postcode:":898,
     "Default Email Address:":"kkjkh@y","Company Registration No:":98,
     "VAT No:":89098,
     "Website":"http://localhost:9000/#/support/domain/request?formLinkUuid=7f000101-4fdf-160d-814f-dfa60dc80000"
 }}

【问题讨论】:

    标签: java mysql json


    【解决方案1】:

    你错过了1步,你实际上得到了一个map(键值对),使用这个map得到company name

    public static void main(String[] args) throws JSONException {
            String domainRequest = "{\"companyName\":{\"Company Name:\":\"kjh\",\"Address 1:\":\"kjhhkh\",\"Address 2:\":\"hkjhkj\",\"Address 3:\":\"hkjhhkj\",\"Address 4:\":\"kjhj\",\"Postcode:\":898,\"Default Email Address:\":\"kkjkh@y\",\"Company Registration No:\":98,\"VAT No:\":89098,\"Website\":\"http://localhost:9000/#/support/domain/request?formLinkUuid=7f000101-4fdf-160d-814f-dfa60dc80000\"}}";
            JSONObject jsonObject = new JSONObject(domainRequest);
            JSONObject jsonMap = (JSONObject) jsonObject.get("companyName"); // Generates HashMap, key-value pair
            String companyName = (String) jsonMap.get("Company Name:"); // from map prepared above get key value
            System.out.println(companyName);
        }
    

    输出

    kjh
    

    【讨论】:

      【解决方案2】:

      你的 json 格式很奇怪。你应该去看看。
      从子属性名称中删除冒号。

             String json =
                "{\"companyName\" : {\n" +
                        "     \"Company Name:\":\"kjh\",\n" +
                        "     \"Address 1:\":\"kjhhkh\",\n" +
                        "     \"Address 2:\":\"hkjhkj\",\n" +
                        "     \"Address 3:\":\"hkjhhkj\",\n" +
                        "     \"Address 4:\":\"kjhj\",\n" +
                        "     \"Postcode:\":898,\n" +
                        "     \"Default Email Address:\":\"kkjkh@y\",\"Company Registration No:\":98,\n" +
                        "     \"VAT No:\":89098,\n" +
                        "     \"Website\":\"http://localhost:9000/#/support/domain/request?formLinkUuid=7f000101-4fdf-160d-814f-dfa60dc80000\"\n" +
                        " }}";
      
          JsonElement jsonElement = new Gson().fromJson(json, JsonElement.class);
          String companyName = jsonElement.getAsJsonObject().get("companyName").getAsJsonObject().get("Company Name:").getAsString();
          System.out.println(companyName);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-19
        • 2020-03-05
        • 1970-01-01
        • 2013-03-15
        • 2011-12-01
        • 1970-01-01
        相关资源
        最近更新 更多