【问题标题】:Convert String to Json in Ballerina在 Ballerina 中将字符串转换为 Json
【发布时间】:2019-03-16 03:08:33
【问题描述】:

有没有办法在 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'

【问题讨论】:

    标签: json string type-conversion ballerina


    【解决方案1】:

    从 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);
        }
    

    【讨论】:

      【解决方案2】:

      在芭蕾舞演员中将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

      【讨论】:

      • 刚刚找到答案,我正在打字发布它。谢谢@Kishanthan!
      • 从 ballerina 1.1x 版本开始,这应该改变如下 json j = checkpanic sr.readJson();
      猜你喜欢
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 2012-10-06
      相关资源
      最近更新 更多