在json数组中搜索字符串并检索其值

时间:2013-11-17 21:55:10

标签: javascript arrays json

我是Json和javascript的新手,我有以下代码,我创建了一个json数组:

<script>

function cost_change(price) {
    var removed;
    var value = <?php echo json_encode(Yii::app()->params['match_resales']);?>;
    console.log("value",value);     

}
</script>  

现在,price是一个需要在json数组中搜索的字符串,如果找到则必须检索其值。
打印的Json数组就像这样Object { 100000.0="1lakh", 200000.0="2lakh", 300000.0="3lakh"}。假设price =“100000.0”那么我应该删除var = 1lakh。怎么做

2 个答案:

答案 0 :(得分:0)

应为Javascript打印的JSON如下:

{ 100000.0: "1lakh", 200000.0: "2lakh", 300000.0: "3lakh" }

然后在您的函数中按预期工作。 PHP json_encode 应该打印出来,而不是你发布的样本。因此,PHP可能存在问题。

答案 1 :(得分:0)

被检索的JSon不是数组,而是对象。这很重要。这意味着:

  1. 您可以使用第一个元素作为键来访问每个成员(项目)。
  2. 您不能将它用作常规数组(这就是它作为对象打印出来的原因)。例如,它没有“长度”。
  3. 话虽如此,您可以从对象中删除一个简单的成员:

        delete value[parseInt(price)];
    

    我们在这里:

    1. 使用数组表示法访问值“object”,使用键返回整个成员。
    2. 字符串价格转换为数字(我假设它们都以.0结尾,否则你应该使用解析浮点数。)
    3. 从对象中删除该成员。