有没有更好的方法来获取Json文件的内容?

时间:2020-06-11 18:24:21

标签: javascript php

我有以下格式的json数据:

[
  {
    "var1": "string",
    "var2": "string",
    "id": "dd4c6519",
  }
]
...
[
  {
    "var1": "string",
    "var2": "string",
    "id": "il4c7802",
  }
] 

每个条目中唯一的唯一参数是id。我想获取var1和var2,其中id = il4c7802
这就是我尝试过的。

//Get file content
$url_ga = "http://filescatins/";
$json_ga = file_get_contents($url_ga);
$obj_ga = json_decode($json_ga);
foreach($obj_ga as $row) 
{
?>
<script>
var ga_id = "<?php echo $row->id; ?>";
var ga_var1 = "<?php echo $row->var1; ?>";
var ga_var2 = "<?php echo $row->var2; ?>";
var ar_var = [ga_var1, ga_var2];

// fill dict
val_dict(ga_id, ar_var);
</script>
<?php
}
?>

这是字典功能

<script>
var dict_data = new Object();
function val_dict(key, val){
    dict_data[key] = val;
    return dict_data;
}
</script>

我现在可以使用Object.keys(dict_data)列出密钥,然后在列表中找到密钥id = il4c7802的位置,并获取与之对应的值。
我的问题是要知道是否有更好的方法来实现这一目标。是否可以在不将它们的每个条目保存在字典中的情况下获得这些值(var1和var2)?
仅通过ID数组就可以达到相同的结果吗?像是
get var1 and var2 where id = il4c7802

1 个答案:

答案 0 :(得分:0)

此函数根据您传递给它的ID获取值

function get_val(id){
    return dict_data[id];
    // This is another way of accessing JS objects
    // If you use dict_data.id, it will look for a key with the name "id" instead of the value in the variable "id"
}

如果没有获得具有该ID的值,则返回"undefined" ...这可能有助于回调ID是否存在,例如:

var some_id = "1234567ABC";
if(get_val(some_id) == undefined){
    console.log("Invalid id!");
}
else {
    console.log("Values are: " + get_val(some_id));
}

此外,由于ar_var是一个数组,因此返回的值也是一个包含var1var2的2个值的数组