如何安全地将包含转义JSON的字符串转换为有效JSON?

冈萨里斯

我正在与第三方API通信,该API返回JSON响应,如下所示:

"{\"SomeResponse\":{\"FIrstAttribute\":8,\"SecondAttribute\":\"On\",\"ThirdAttribute\":{\"Id\":2,\"FirstName\":\"Okkie\",\"Name\":\"Bokkie\",\"Street\":\"\",\"StreetNumber\":null,\"PostCode\":\"\",\"City\":\"\",\"Country\":\"}}}"

它是一种JSON ...,但是是一个字符串。注意第一个和结尾的双引号,当然还有所有的转义斜杠。

目前,我通过String来解决此问题。替换反斜杠以及第一个和最后一个引号。之后,我可以解析它。

mystring.Replace("\\", "");

但是,如果其中一个属性实际上具有反斜杠作为值怎么办?例如:

\"SecondAttribute\":\"My Super Back Slash: \\ . That was it.\"

在那种情况下,我会不小心删除值中应该存在的反斜杠。

是否有人对如何正确解析此JSON字符串有个好主意?

乔恩·斯基特

基本上,这是将JSON编码JSON字符串的JSON-根据注释将字符串的末尾略微修改。在Json.NET中处理它并不是很困难,首先使用它JToken.Parse可以有效地进行转义,然后解析结果:

using System;
using System.IO;
using Newtonsoft.Json.Linq;

class Program
{
    static void Main(string[] args)
    {
        string text = File.ReadAllText("test.json");
        JToken token = JToken.Parse(text);
        JObject json = JObject.Parse((string) token);
        Console.WriteLine(json);
    }
}

输出:

{
  "SomeResponse": {
    "FIrstAttribute": 8,
    "SecondAttribute": "On",
    "ThirdAttribute": {
      "Id": 2,
      "FirstName": "Okkie",
      "Name": "Bokkie",
      "Street": "",
      "StreetNumber": null,
      "PostCode": "",
      "City": "",
      "Country": ""
    }
  }
}

即使包含反斜杠的数据也可以,因为我希望反斜杠可以再次编码-但值得再次检查。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

安全地将字符串转换为DateTime

来自分类Dev

将字符串转换为有效的JSON对象

来自分类Dev

将textarea值转换为有效的JSON字符串

来自分类Dev

如何最有效地将特定字节从二进制文件转换为字符串

来自分类Dev

有效地将大的 BigInteger 转换为字符串,ToString() 耗时太长

来自分类Dev

ansible将转义的json字符串转换为json

来自分类Dev

如何将带有JSON字符串的Pandas DataFrame转换为有效JSON?

来自分类Dev

安全地将unicode字符串转换为可打印字符

来自分类Dev

雄辩地将 json 数组更新为字符串转换失败,但使用 save() 有效

来自分类Dev

无法将字符串转换为 JSON。字符串到有效的 JSON 并在 PHP 中解析 JSON

来自分类Dev

安全地将int转换为C中的字符串

来自分类Dev

安全地将int转换为C中的字符串

来自分类Dev

将SQL对象转换为Node.js中的有效Json字符串-Azure

来自分类Dev

阻止Go的json.Marshal将字符串强制转换为有效的UTF-8 Unicode?

来自分类Dev

使用Angular将json对象中的通用文本字符串转换为有效的url

来自分类Dev

测试Alexa技能返回“将Lambda事件JSON有效负载转换为字符串时出错”

来自分类Dev

如何将字符串转换为有效的电子邮件地址?

来自分类Dev

如何将转义的JSON字符串转换为NSString?

来自分类Dev

如何在Java中有效地将二进制字符串转换为二进制字节数组?

来自分类Dev

如何在Java中有效地将二进制字符串转换为二进制字节数组?

来自分类Dev

如何将数组转换为有效的json

来自分类Dev

如何将数组转换为有效的json

来自分类Dev

将json字符串转换为包含@key的POJO

来自分类Dev

将json字符串转换为包含@key的POJO

来自分类Dev

将包含双引号的字符串转换为 json

来自分类Dev

Clojure:轻松地从无效字符串转换为有效关键字

来自分类Dev

如何安全地确保变量仅包含有效的文件名?

来自分类Dev

如何将JSON字符串转换为JSON

来自分类Dev

有效地将空字符串替换为数组中的null

Related 相关文章

  1. 1

    安全地将字符串转换为DateTime

  2. 2

    将字符串转换为有效的JSON对象

  3. 3

    将textarea值转换为有效的JSON字符串

  4. 4

    如何最有效地将特定字节从二进制文件转换为字符串

  5. 5

    有效地将大的 BigInteger 转换为字符串,ToString() 耗时太长

  6. 6

    ansible将转义的json字符串转换为json

  7. 7

    如何将带有JSON字符串的Pandas DataFrame转换为有效JSON?

  8. 8

    安全地将unicode字符串转换为可打印字符

  9. 9

    雄辩地将 json 数组更新为字符串转换失败,但使用 save() 有效

  10. 10

    无法将字符串转换为 JSON。字符串到有效的 JSON 并在 PHP 中解析 JSON

  11. 11

    安全地将int转换为C中的字符串

  12. 12

    安全地将int转换为C中的字符串

  13. 13

    将SQL对象转换为Node.js中的有效Json字符串-Azure

  14. 14

    阻止Go的json.Marshal将字符串强制转换为有效的UTF-8 Unicode?

  15. 15

    使用Angular将json对象中的通用文本字符串转换为有效的url

  16. 16

    测试Alexa技能返回“将Lambda事件JSON有效负载转换为字符串时出错”

  17. 17

    如何将字符串转换为有效的电子邮件地址?

  18. 18

    如何将转义的JSON字符串转换为NSString?

  19. 19

    如何在Java中有效地将二进制字符串转换为二进制字节数组?

  20. 20

    如何在Java中有效地将二进制字符串转换为二进制字节数组?

  21. 21

    如何将数组转换为有效的json

  22. 22

    如何将数组转换为有效的json

  23. 23

    将json字符串转换为包含@key的POJO

  24. 24

    将json字符串转换为包含@key的POJO

  25. 25

    将包含双引号的字符串转换为 json

  26. 26

    Clojure:轻松地从无效字符串转换为有效关键字

  27. 27

    如何安全地确保变量仅包含有效的文件名?

  28. 28

    如何将JSON字符串转换为JSON

  29. 29

    有效地将空字符串替换为数组中的null

热门标签

归档