将JSON字符串转换为具有空值的JSON对象

时间:2017-04-24 12:29:56

标签: java json

module DaveTest {
 namespace "urn:aaa:ddd:DaveTest";
 prefix dave-module;

 description "Dave testing file";

 revision "2017-04-17" {
      description "Initial version.";
 }

 container testing-vars {

      list test-list {

           key "vpn-transaction-id l3vpn-type";
           unique "vpn-transaction-id";

           leaf vpn-transaction-id {
                type string;
           }

           leaf l3vpn-type {
                type enumeration {
                     enum "bgp";
                     enum "static";
                     enum "gre tunnel";
                }
                mandatory true;
           }

           leaf vpn-id {
                when "../l3vpn-type = 'bgp'";
                type string;
           }
      }              
 }

给出错误,因为abc不是JSONObject。如何将此字符串转换为JSON对象?

在实际实施中'测试'我正在从文件中读取字符串..所以不添加转义序列.. !!

2 个答案:

答案 0 :(得分:1)

字符串中的串联不正常。 abc是对象吗?或者它只是字符串abc?

String test = "{" + "abc" + ":null}";

但在上述情况下,您应该这样做:

String test = "{abc:null}";

或者,如果abc是另一个定义的String变量,请说如下:

String abc = "awesomeText";
String test = "{" + abc + ":null}";

或许您需要来自abc的那些引用? 使用" \"逃避引用字符。像这样:

String test ="{\"abc\":null}";

答案 1 :(得分:0)

我做了这个测试,它对我来说很好:

public static void main(String[] args) {
    BufferedReader br;
    try {
        br = new BufferedReader(new FileReader("C:\\test.json"));

        String currentLine;
        while ((currentLine = br.readLine()) != null) {
            JSONObject testObj = new JSONObject(currentLine);
            System.out.println(testObj);
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

我在使用test.json文件的内容时尝试了许多成功的测试:

  1. {"abc":null}
  2. {'abc':null}
  3. {abc:null}