json字符串格式化整数值

时间:2014-03-27 15:07:10

标签: json

我试图了解一个关于JSON字符串的简单基本概念。我正在运行一个看起来像这样的简单测试:

$(document).ready(function() {
 var last = 9;
 var json1 = $.parseJSON('{"id":"10"}');
 var json2 = $.parseJSON('{"id":10}');

 if(json1.id > last)
    alert("json1.id is greater than last");

 if(json2.id > last)
    alert("json2.id is greater than last");

});

因为变量" last"是类型int我尝试在它和" id"之间进行比较。来自两个不同的JSON字符串。 json1将十个值表示为字符串,而json2将其表示为整数值。运行此命令时,将执行两个警报。我没想到的是。我预计第二个警报会执行,但不是第一个警报,因为十个警报会以字符串形式显示。

我认为在JSON中格式化整数值的正确方法是在json2中,对吗?

为什么第一个测试正在执行警报?

我正在尝试对更大的项目进行问题排查,并认为问题可能与JSON字符串格式化有关。

1 个答案:

答案 0 :(得分:1)

Javascript操作员的文档包含所有答案:

  

使用标准词典排序比较字符串   Unicode值。在大多数情况下,如果两个操作数不相同   类型,JavaScript尝试将它们转换为适当的类型   比较。这种行为通常会导致比较   操作数字。内部类型转换的唯一例外   比较涉及===和!==运算符,它们执行严格   平等和不平等的比较。这些运营商不会尝试   在检查相等性之前将操作数转换为兼容类型。

来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Comparison_operators