<i id='0ki8a'><tr id='0ki8a'><dt id='0ki8a'><q id='0ki8a'><span id='0ki8a'><b id='0ki8a'><form id='0ki8a'><ins id='0ki8a'></ins><ul id='0ki8a'></ul><sub id='0ki8a'></sub></form><legend id='0ki8a'></legend><bdo id='0ki8a'><pre id='0ki8a'><center id='0ki8a'></center></pre></bdo></b><th id='0ki8a'></th></span></q></dt></tr></i><div id='0ki8a'><tfoot id='0ki8a'></tfoot><dl id='0ki8a'><fieldset id='0ki8a'></fieldset></dl></div>
    • <bdo id='0ki8a'></bdo><ul id='0ki8a'></ul>

    <small id='0ki8a'></small><noframes id='0ki8a'>

    1. <legend id='0ki8a'><style id='0ki8a'><dir id='0ki8a'><q id='0ki8a'></q></dir></style></legend>

        <tfoot id='0ki8a'></tfoot>

        如何使用 JSON.NET 确保字符串是有效的 JSON

        时间:2023-08-23

              <bdo id='CnGLZ'></bdo><ul id='CnGLZ'></ul>

                  <legend id='CnGLZ'><style id='CnGLZ'><dir id='CnGLZ'><q id='CnGLZ'></q></dir></style></legend>
                    <tbody id='CnGLZ'></tbody>
                  <tfoot id='CnGLZ'></tfoot>

                  <small id='CnGLZ'></small><noframes id='CnGLZ'>

                • <i id='CnGLZ'><tr id='CnGLZ'><dt id='CnGLZ'><q id='CnGLZ'><span id='CnGLZ'><b id='CnGLZ'><form id='CnGLZ'><ins id='CnGLZ'></ins><ul id='CnGLZ'></ul><sub id='CnGLZ'></sub></form><legend id='CnGLZ'></legend><bdo id='CnGLZ'><pre id='CnGLZ'><center id='CnGLZ'></center></pre></bdo></b><th id='CnGLZ'></th></span></q></dt></tr></i><div id='CnGLZ'><tfoot id='CnGLZ'></tfoot><dl id='CnGLZ'><fieldset id='CnGLZ'></fieldset></dl></div>
                  本文介绍了如何使用 JSON.NET 确保字符串是有效的 JSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我有一个原始字符串.我只想验证字符串是否是有效的 JSON.我正在使用 JSON.NET.

                  I have a raw string. I just want to validate whether the string is valid JSON or not. I'm using JSON.NET.

                  推荐答案

                  通过代码:

                  最好的办法是在 try-catch 中使用 parse 并在解析失败的情况下捕获异常.(我不知道有任何 TryParse 方法).

                  Your best bet is to use parse inside a try-catch and catch exception in case of failed parsing. (I am not aware of any TryParse method).

                  (使用 JSON.Net)

                  最简单的方法是使用 Parse 字符串JToken.Parse,并检查字符串是否以 {[ 开头并以 }] 分别 (从这个 回答):

                  Simplest way would be to Parse the string using JToken.Parse, and also to check if the string starts with { or [ and ends with } or ] respectively (added from this answer):

                  private static bool IsValidJson(string strInput)
                  {
                      if (string.IsNullOrWhiteSpace(strInput)) { return false;}
                      strInput = strInput.Trim();
                      if ((strInput.StartsWith("{") && strInput.EndsWith("}")) || //For object
                          (strInput.StartsWith("[") && strInput.EndsWith("]"))) //For array
                      {
                          try
                          {
                              var obj = JToken.Parse(strInput);
                              return true;
                          }
                          catch (JsonReaderException jex)
                          {
                              //Exception in parsing json
                              Console.WriteLine(jex.Message);
                              return false;
                          }
                          catch (Exception ex) //some other exception
                          {
                              Console.WriteLine(ex.ToString());
                              return false;
                          }
                      }
                      else
                      {
                          return false;
                      }
                  }
                  

                  {[ 等添加检查的原因是基于 JToken.Parse 将解析值的事实例如 1234"'a string'" 作为有效标记.另一种选择可能是在解析中同时使用 JObject.ParseJArray.Parse 并查看其中是否有人成功,但我相信检查 {}[] 应该更容易. (感谢@RhinoDevel 指出)

                  The reason to add checks for { or [ etc was based on the fact that JToken.Parse would parse the values such as "1234" or "'a string'" as a valid token. The other option could be to use both JObject.Parse and JArray.Parse in parsing and see if anyone of them succeeds, but I believe checking for {} and [] should be easier. (Thanks @RhinoDevel for pointing it out)

                  没有 JSON.Net

                  您可以使用 .Net framework 4.5 System.Json 命名空间,如:

                  You can utilize .Net framework 4.5 System.Json namespace ,like:

                  string jsonString = "someString";
                  try
                  {
                      var tmpObj = JsonValue.Parse(jsonString);
                  }
                  catch (FormatException fex)
                  {
                      //Invalid json format
                      Console.WriteLine(fex);
                  }
                  catch (Exception ex) //some other exception
                  {
                      Console.WriteLine(ex.ToString());
                  }
                  

                  (但是,您必须使用以下命令通过 Nuget 包管理器安装 System.Json:PM>;Install-Package System.Json -Version 4.0.20126.16343在包管理器控制台上)(取自这里)

                  (But, you have to install System.Json through Nuget package manager using command: PM> Install-Package System.Json -Version 4.0.20126.16343 on Package Manager Console) (taken from here)

                  非编码方式:

                  通常,当有一个小的 json 字符串并且您试图在 json 字符串中查找错误时,我个人更喜欢使用可用的在线工具.我通常做的是:

                  Usually, when there is a small json string and you are trying to find a mistake in the json string, then I personally prefer to use available on-line tools. What I usually do is:

                  • 将 JSON 字符串粘贴到 JSONLint The JSON Validator 并查看是否它是一个有效的 JSON.
                  • 稍后将正确的 JSON 复制到 http://json2csharp.com/ 和为它生成一个模板类,然后反序列化它使用 JSON.Net.
                  • Paste JSON string in JSONLint The JSON Validator and see if its a valid JSON.
                  • Later copy the correct JSON to http://json2csharp.com/ and generate a template class for it and then de-serialize it using JSON.Net.

                  这篇关于如何使用 JSON.NET 确保字符串是有效的 JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  <legend id='Roj7d'><style id='Roj7d'><dir id='Roj7d'><q id='Roj7d'></q></dir></style></legend>
                      <i id='Roj7d'><tr id='Roj7d'><dt id='Roj7d'><q id='Roj7d'><span id='Roj7d'><b id='Roj7d'><form id='Roj7d'><ins id='Roj7d'></ins><ul id='Roj7d'></ul><sub id='Roj7d'></sub></form><legend id='Roj7d'></legend><bdo id='Roj7d'><pre id='Roj7d'><center id='Roj7d'></center></pre></bdo></b><th id='Roj7d'></th></span></q></dt></tr></i><div id='Roj7d'><tfoot id='Roj7d'></tfoot><dl id='Roj7d'><fieldset id='Roj7d'></fieldset></dl></div>

                      <small id='Roj7d'></small><noframes id='Roj7d'>

                        <tbody id='Roj7d'></tbody>

                        <tfoot id='Roj7d'></tfoot>
                          <bdo id='Roj7d'></bdo><ul id='Roj7d'></ul>