如何读取JSON布尔值和数值?

时间:2016-12-20 12:12:42

标签: javascript json node.js

我通过将其创建为:

将JSON对象发送到服务器
var input_array =self.input_value();

myJson={ 
    request_type:1,   //send request for problem 1
    list_empty: 0,    //1 is empty, 0 is not empty
    data_list:[]
};

for(var k=0;k<input_array.length;k++)
{
    myJson.data_list[k]=input_array[k];
}

在服务器上

var data=req.body;  
console.log("request_type: ",req.body.request_type);  // worked

var m_bool= Number(data.list_empty);
if( m_bool != 0)
{
    console.log("data_list size: ",data.data_list.length);
    for(var i=0;i<data.data_list.length;i++)
    {
        console.log(data.data_list[i]);
    }
}

在打印第二行后停止了。我认为它无法阅读 &#34; list_empty&#34; JSON领域。我改为

...    
list_empty: false,
...

仍然服务器未输入&#34;如果&#34;声明。没有if语句我就能打印数组元素。

我想我没有读到&#34; list_empty&#34;的价值。

如何获得if语句的正确值?

2 个答案:

答案 0 :(得分:0)

您可以使用类型来识别您的案例:

&#13;
&#13;
let bo = false;
console.log(typeof bo === "boolean");   // true

let nu = 3
console.log(typeof nu === "number");    // true
&#13;
&#13;
&#13;

答案 1 :(得分:0)

JSON可能不应该受到责备 - 我猜你已经像我们其他人一样混淆了这个变量。使用“0”作为“非空”似乎很危险。

list_empty: 0,    //1 is empty, 0 is not empty
....
if (m_bool != 0)
    //iterate data

你说“如果为空,则重复我的数据”。但它不是空的,如果它是你有新的问题。只需修正逻辑:

if (m_bool == 0)