示例:以下代码是否对JSON规范有效?
{
precision: "zip"
}
Run Code Online (Sandbox Code Playgroud)
或者我应该总是使用以下语法?(如果是这样,为什么?)
{
"precision": "zip"
}
Run Code Online (Sandbox Code Playgroud)
我在JSON规范中没有真正发现这个问题.虽然他们在示例中使用了键周围的引号.
目前我有一些问题.我正在使用C#和Json.NET.问题是我总是得到:
{"解析值时遇到意外的字符:e.路径'',第0行,位置0."}
所以我使用Json.NET的方式如下.我有一个应该保存的类.这个类看起来像这样:
public class stats
{
public string time { get; set; }
public string value { get; set; }
}
public class ViewerStatsFormat
{
public List<stats> viewerstats { get; set; }
public String version { get; set; }
public ViewerStatsFormat(bool chk)
{
this.viewerstats = new List<stats>();
}
}
Run Code Online (Sandbox Code Playgroud)
此类的一个对象将被填充并保存:
File.WriteAllText(tmpfile, JsonConvert.SerializeObject(current), Encoding.UTF8);
Run Code Online (Sandbox Code Playgroud)
保存部分工作正常,文件存在并填充.之后,文件将被读回到类中:
try
{
ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(tmpfile);
//otherstuff
}
catch(Exception ex)
{
//error loging stuff
}
Run Code Online (Sandbox Code Playgroud)
现在在current =行上出现异常:
{"解析值时遇到意外的字符:e.路径'',第0行,位置0."}
我不知道为什么会这样.json文件如下 - > 点击我即时JSON链接
有没有人有任何想法?
我在控制台应用程序中使用C#,我需要一种快速方法来检查从另一个服务返回的字符串是XML还是JSON.
我知道,如果这只是XML,我可以检查它,一个模式,或者如果它只是JSON我可以尝试用JSON.Net解析它,但有一个更快的方式 - 也许用建立.NET函数 - 只是为了在继续处理它之前告诉它是什么?
在本教程中:http://www.asp.net/web-api/videos/getting-started/custom-validation Jon使用
dynamic error = new JsonObject();
Run Code Online (Sandbox Code Playgroud)
同
using System.Json;
Run Code Online (Sandbox Code Playgroud)
我猜这是JsonObject:http : //msdn.microsoft.com/en-us/library/system.json.jsonobject( v=vs.110) .aspx位于:
我已经添加了System.Runtime.Serialization引用但仍无法找到System.Json.
我读微软的文档错了吗?(我使用的是.NET 4.5)
有没有办法验证字符串是否为json?除了try/catch.
我正在使用ServiceStack Json Serializer,但找不到与验证相关的方法.
我正在使用 newtonsoft 的 JSON.Net 并且喜欢它的每一分钟。
但是,我用来JObject.Parse(jsonString)
从响应字符串中获取 JToken。如果我发送无效的 JSON,则会出现异常。我可以捕获异常,但我希望能够在将字符串发送到 Parse 之前先测试该字符串。
也许类似于JObject.TryParse()
(不存在)。
我什至会采取 bool ValidJson(string)
我知道有 JSONLint,但我真的很想将外部调用保持在最低限度。
有任何想法吗?