检查 JSON 和 XML 是不是有效? C#

Posted

技术标签:

【中文标题】检查 JSON 和 XML 是不是有效? C#【英文标题】:Check JSON and XML is valid? c#检查 JSON 和 XML 是否有效? C# 【发布时间】:2012-02-04 17:19:35 【问题描述】:

我正在使用 newtonsoft json.net http://json.codeplex.com/ 我想知道...

如何验证 json 和 xml 是否有效 json/xml。

如何验证?

【问题讨论】:

对于 JSON,请参阅 How to make sure that string is Valid JSON using JSON.NET 【参考方案1】:

您要在服务器端或客户端验证 json 的位置。 假设您想在服务器端执行此操作,请尝试反序列化 json 字符串。如果它坏了,那么它不是一个有效的 json。使用 javascriptSerializer 进行反序列化

var serializer = new JavaScriptSerializer();
var result = serializer.Deserialize<Dictionary<string, object>>(json);

【讨论】:

【参考方案2】:

如果您使用的是 JSON.net 软件,您可以完全按照 Anand 的说明进行操作。只需反序列化 JSON 字符串,如果它中断或出错,则它不是有效的 JSON 结构。现在,如果您尝试做类似http://jsonlint.com/ 的事情,那么您可能已经超出了我们在论坛上可以帮助您的范围。如果您想检查它是否出错,只需在 C# 中使用以下代码,其中结果是 JSON 字符串:

var root = JsonConvert.DeserializeObject<RootObject>(result);

您要从 JSON 字符串反序列化的信息必须具有类似于以下内容的 RootObject 类:

public class RootObject

    // You would need to create items here to store each of the objects' information in the JSON file.
    // For example:
    public string itemName  get; set; 
    public int itemID  get; set; 

现在,这是假设您知道 JSON 文件中应该包含的信息。否则,这本身就是一个完整的程序。

【讨论】:

在这里了解“中断或错误”的定义会很有趣。我注意到 JsonConvert.DeserializeObject() 的 XML 文档没有说明如果有的话会引发什么异常......

以上是关于检查 JSON 和 XML 是不是有效? C#的主要内容,如果未能解决你的问题,请参考以下文章

创建 XML 时如何有效地检查 NSDictionay 键是不是具有值

检查响应字符串是 JSON 对象还是 XML?

如何检查字符串是不是是有效的 XML 元素名称?

如何手动检查 json web token 是不是有效?

检查来自 API 的响应是不是为有效 JSON

检查字符串是不是是 Typescript 中的有效 JSON