检查 JSON 和 XML 是否有效?c#

6
我正在使用Newtonsoft Json.net http://json.codeplex.com/ ,我想知道如何验证 JSON 和 XML 是否为有效的 JSON/XML。请问如何验证?

有关JSON的内容请参见如何使用JSON.NET确保字符串是有效的JSON - Michael Freidgeim
2个回答

7

您想在服务器端还是客户端验证json?假设您想在服务器端进行验证,请尝试对json字符串进行反序列化。如果失败,则不是有效的json。使用JavaScriptSerializer进行反序列化。

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

1
如果您使用JSON.net软件,那么您可以像Anand所说的那样操作。只需反序列化JSON字符串,如果它破坏或出错,则不是有效的JSON结构。现在,如果您想做类似http://jsonlint.com/的事情,那么您可能已经超出了我们在论坛上可以帮助您的范围。如果您想检查它是否出错,请在C#中使用以下代码,其中result是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文件中包含的信息。否则,那就是一个完整的程序。


1
这里了解“中断或错误”的定义将会很有趣。我注意到JsonConvert.DeserializeObject()的XML文档也没有说明是否会抛出任何异常... - PandaWood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接