Java JSON : get object-value without quotes?

标签 java json javax.json

我解析一个 JSON 字符串。 如何获取不带引号的对象的值?我通过列表得到它,但它不适用于对象。

import javax.json.*;
import javax.json.stream.*;

...

    String s="{ \"foo\" : [ \"abc\", \"def\" ],   \"bar\" : { \"k1\" : \"v1\", \"k2\" : \"v2\" } }";

    JsonReader jr = Json.createReader(new StringReader (s));
    JsonObject jo = jr.readObject();

    JsonArray foo = jo.getJsonArray ("foo");
    for (int i = 0; i < foo.size (); i ++)
    {
        System.out.println (i + ": " + foo.getString (i));  // ok, no quotes
    }

    JsonObject bar = jo.getJsonObject ("bar");
    for (Map.Entry <String, JsonValue> e : bar.entrySet ())
    {
        System.out.println (e.getKey() + ": " + e.getValue ().toString()); 
    }

这就是输出。

0: abc
1: def
k1: "v1"
k2: "v2"

如何从解析器中获取不带引号的 v1 和 v2?

最佳答案

你知道你的输入值是字符串,所以你可以这样做:

for (Map.Entry <String, JsonValue> e : bar.entrySet ()) {
    System.out.println (e.getKey() + ": " + ((JsonString)e.getValue ()).getString()); 
}

关于Java JSON : get object-value without quotes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51917709/

相关文章:

Java:生成 JSON:尝试命名对象和数组时出现异常

java - 使用 JsonGenerator 将字符串映射为 JSON

java - 如何在 Java 程序中包含 mysql-Server

java - LinkedList在java中搜索时间复杂度

json - Golang 将 JSON 映射到结构体

javascript - json 在 Angular 中不起作用

javascript - HTML5 JSON 多维数组键与 javascript 或 jQuery?

java - 使用 javax.json 中的两个对象渲染 JSON

java - 创建通知 channel (React Native)

java - 如何在 Apache POI 中获取 Excel 空白单元格值?