在 Ballerina 中将字符串转换为 Json

Convert String to Json in Ballerina

有没有办法在 Ballerina 中将 string 转换为 json

我发现 this PR - Add jsons:parse() method to get a JSON from a string 说添加支持以将 string 解析为 json,但找不到任何示例。

我尝试了以下方法:

string person = {"name":"John", "address":{"number":89, "street":"main street", "town": "Colombo"}};
json personJson = sons:parse(person);

但是它给了我一个错误:

undefined package 'jsons'
undefined function 'parse'

在 ballerina 中将 string 转换为 json 的正确方法是使用 StringReader 中的 readJson 函数。您尝试的是一种不再支持的旧方法。

以下示例显示了如何使用 StringReader.

import ballerina/io;

public function main(string... args) {
    string str = "{\"name\":\"John\", \"address\":{\"number\":89, \"street\":\"main street\", \"town\":\"Colombo\"}}";
    io:StringReader sr = new(str, encoding = "UTF-8");
    json j = check sr.readJson();
    io:println(j);
}

有关 StringReader 的更多信息可以从文档中找到 - https://ballerina.io/learn/api-docs/ballerina/io.html#StringReader

从 Ballerina swan lake 开始,您可以使用 fromJsonString() 方法将字符串转换为 json:

    string jsonStr = "{\"key\": \"value\"}";
    json|error converted = jsonStr.fromJsonString();
    if (converted is error) {
        io:println("Error in parsing json");
    } else {
        io:println(converted);
    }