【问题标题】:JSON Object validation in JavaScriptJavaScript 中的 JSON 对象验证
【发布时间】:2012-01-15 21:57:04
【问题描述】:

我在文本字段中使用 JSON 对象作为输入。有什么方法可以在 JavaScript 中验证这个 JSON 对象吗??

【问题讨论】:

  • 您是在尝试验证它是语法上有效的 JSON 还是符合特定模式?
  • 我只是想检查在文本字段中输入的对象是否是有效的 JSON。
  • 您可以使用 intval 函数,例如 $id=intval($id); echo json_encode($data)

标签: javascript json validation


【解决方案1】:

通过 JSON 解析器运行它(json2.js,如果你没有使用内置的库),看看你是否能取回数据。

【讨论】:

    【解决方案2】:

    是的,有很多 JSON 库可供您使用。

    在使用 Java 时试试这些:

    或者如果你更喜欢简单的 JavaScript,你可以使用

    David Walsh 在下面的博客http://davidwalsh.name/json-validation 中给出了如何使用 Mootools、JSON Schema 在 javascript 中执行此操作的完整示例。试一试。

    【讨论】:

      【解决方案3】:

      基于@Quentin 的想法,您可以执行以下操作:

      function isValidJson(json) {
          try {
              JSON.parse(json);
              return true;
          } catch (e) {
              return false;
          }
      }
      
      console.log(isValidJson("{}")); // true
      console.log(isValidJson("abc")); // false
      

      这需要在页面中部署json2.js,以确保跨浏览器支持JSONObject

      【讨论】:

      • 感谢您的回复。但我也收到了有效 JSON 对象的错误。
      • { "id":"b9c8e5f2-50ae-102c-8da0-dv8gb9f250ae", "at":2, "tmax":100, "imp": [ { "impid":"dv8gb9f2- 50ae-102c-8da0-12313a002cd2", "h":50, "w":320, "instl":0 } ], "app": { "aid":"73737", "name":"We Rule" , "ver":"2.1.3" }, "设备": { "dpid":"dfe9f2bdfe9f2bdfe9f2bdfe9f2bdfe9f2bdfe9f2b", "ip":"124.32.53.1", "ua":"Mozilla%2F5.0%20(iPhone% 3B%20U%3B%20CPU%20iPhone" } }
      • 它似乎对我有用,看看这个jsFiddle
      • 我在“onsubmit”上使用这个功能。这应该是个问题吗??
      • 不应该。是否可以设置jsFiddle 来演示代码失败的场景?
      【解决方案4】:

      如果您希望将对象验证为特定架构,您可以尝试JSD Validator

      【讨论】:

        【解决方案5】:

        这是对我有用的代码,

        $scope.jsonFunc = function(json){
                try {
                    $scope.jsonData = JSON.stringify(JSON.parse(json), null, 2);
                    return true;
                    $scope.errorMessage = "Valid JSON";
                } catch (e) {
                    $scope.errorMessage = e.message;
                    return false;
                }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-05-18
          • 2017-10-15
          • 2015-10-24
          • 2017-11-28
          • 2011-07-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多