我正在使用 NewtonSoft.Json 解析器来解析远程网址。
我的远程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());
}
}
那么,有没有办法验证远程JSON字符串,而不使用替换方法?
答案 0 :(得分:-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);
}