【问题标题】:how to validate the json string in asp.net c#?如何验证asp.net c#中的json字符串?
【发布时间】:2014-04-16 13:45:20
【问题描述】:

我有 json 字符串,它将传递给 web 服务以对其执行一些操作。我的 json 字符串会像这个例子一样:

{"ID":"2","Name":"Tom","data":"[22.3,23.4,21.5]"}

如果我删除 , (coma),我想验证 json 字符串:

{"ID":"2""Name":"Tom""data":"[22.3,23.4,21.5]"} 

来自 json 字符串,因此其返回的错误消息 json 格式不正确。

【问题讨论】:

  • 这里已经回答了这个问题:stackoverflow.com/questions/11835593/…
  • 您到底想达到什么目的?为什么要删除逗号?请记住,C# 本身对 JSON 没有积极的了解。 JavaScriptSerializer 是一个选项。
  • @Flater 先生基本上我想限制 web 服务,如果输入字符串是有效的 json 格式,则它给出响应,否则它的返回消息“json 格式不正确”。
  • @Andrew 我实现了你说它工作正常的代码,但是如果 , (逗号)在 json 字符串中丢失,那么程序是什么。
  • @FahadTahir:你用 JSON 做什么?如果它将在您的代码中功能性地使用,那么如果您提供的 JSON 字符串无效,该组件将开始抱怨。如果是异常,您可以捕获它并将错误消息发送回客户端。如果它仅用作要发送到浏览器的字符串,则需要处理无效 JSON 的是浏览器(阅读:您的 javascript)。在我看来,如果后端不能在功能上使用某些东西,那么让后端验证它是没有意义的。

标签: c# json validation


【解决方案1】:

JSON.netJSONSharp 允许您将 JSON 解析为对象,并且能够验证或至少捕获错误异常

【讨论】:

    【解决方案2】:

    试试

    var dynamicObject = Json.Decode(jsonString);
    

    并查看它是否引发错误。

    您可能需要为此单独安装 DLL。我相信它在MVC库下载中。

    http://msdn.microsoft.com/en-us/library/system.web.helpers.json%28v=vs.111%29.aspx

    【讨论】:

      【解决方案3】:

      也许您可以尝试使用 ToJSON() 函数创建 JSON

      List<MyObject> people = new List<MyObject>{
                         new MyObject{ID = 1, Name= "Tom", Data= "[22.3,23.4,21.5]"},
                         new Person{ID = 2, Name= "Tome", LastName = ""[22.3,23.4,21.5]"}
                         };
      
      
      string jsonString = people.ToJSON();
      

      如果您将字符串作为 JSON 格式,您可以执行以下操作:

      JsonConvert.SerializeObject(jsonString ).Dump();
      

      或使用网络 JSON: http://james.newtonking.com/json

      【讨论】:

        【解决方案4】:

        工作代码 sn-p

        public bool isValidJSON(String json) {
try {
JToken token = JObject.Parse(json);
return true; 
}
catch(Exception ex){ 
return false;
} 
}

        Source

        【讨论】:

          猜你喜欢
          • 2012-08-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-26
          • 1970-01-01
          • 2011-03-11
          • 1970-01-01
          相关资源
          最近更新 更多