0

我正在使用NewtonSoft.Json解析器来解析远程 URL。

我的远程 JSON 示例如下

Kerberos.load({"todays" : "Fri, Mar 15",
    "datas" : [
            {
                "id" : "2021200303"
            }
            ]});

我正在解析 JSON 示例如下

using (var WebClient = new System.Net.WebClient())
{
    WebClient.Encoding = System.Text.Encoding.UTF8;

    var _Json = WebClient.DownloadString(_MyJsonRemoteURL_);

    _Json = _Json.Replace("Kerberos.load(", "");
    _Json = _Json.Replace("]});", "]}");

    dynamic _Dynamic = JsonConvert.DeserializeObject(_Json);
    foreach (var _JsonNode in _Dynamic.datas)
    {
        MessageBox.Show(_JsonNode.SelectToken("id").ToString());
    }
}

那么,有没有办法在不使用Replace方法的情况下验证远程 JSON 字符串?

4

1 回答 1

-2

如果您想为 JSON 执行此操作,则很有可能,请查看Contract testing a json service in .net

在此处交叉发布代码以供快速参考,更多详细信息请查看链接

[Test]
public void ShouldBeAbleToValidateTheJSONServiceResponseForFunctionalityA()
{
    const string schemaJson = @"
{
    'description': 'Service Response',
    'type': 'object',
    'properties': {
        'product': {
            'type': 'object',
            'properties': {
                'availability': {
                        'type': 'array',
                        'items': {
                                    'type': 'object',
                                    'properties': {
                                                    'Local': { 'type' : 'number'},
                                                    'Storehouse': { 'type' : 'number'},
                                                } 
                                }
                    }
            }        
        }
    }
}";
    var parameters = new Dictionary<string, object> { { "id", 1 }, { "city", "Chennai" } };
    AssertResponseIsValidSchema(schemaJson, parameters);
}
于 2013-03-16T02:43:42.437 回答