我有以下格式的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
答案 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
是一个数组,因此返回的值也是一个包含var1
和var2
的2个值的数组