JsonValue 到 JsonString?

问题描述 投票:0回答:1

我对 Jakarta 的 JSON 处理有点困难。如何获取数组元素的字符串?

import jakarta.json.*;

String str = "{ \"test\": [\"abc\", \"xyz\"], \"test2\": \"blabla\" }";
    
JsonReader jr = Json.createReader (new StringReader (str));
JsonObject jo = jr.readObject ();
    
JsonString js = jo.getJsonString("test2");
System.out.println(js.toString());      // OK - "blabla"
System.out.println(js.getString());     // OK - blabla
    
JsonValue jv = jo.getJsonArray ("test").get(0);
System.out.println (jv.toString());     // "abc"

// how to get abc instead of "abc"?
java spring-boot jakarta-jsonp
1个回答
0
投票

正如评论中提到的,我们可以将值转换为

JsonString

更好的方法是使用标准 API JsonArray#getString(int)

import jakarta.json.*;

import java.io.StringReader;

public class JakartaJsonTest {
    public static void main(String[] args) {
        String str = "{ \"test\": [\"abc\", \"xyz\"], \"test2\": \"blabla\" }";

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

        JsonString jv = jo.getJsonArray("test").getJsonString(0);
        System.out.println(jv.getString());     // abc
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.