将json对象字符串转换为值
Turn a json object string into value
我正在编写一个函数,它接受一个字符串,对其进行拆分,并使用json[key][key2][key3]
格式。问题是n可能是无限的(不是字面上的,但需要这样写)
function getJsonValue(json,string) {
var vals = string.split(".");
var x = vals.length;
var string = '';
while (x != 0) {
string += "['"+vals[(vals.length-x)]+"']"
x--
}
return string;
}
这将产生,例如:"['condition']['item']['condition']['temp']"
我需要通过将其附加到json对象(如)来从中提取一个值
json"['condition']['item']['condition']['temp']"
但我不知道这是怎么实现的,也不知道这是否可能。
编辑:问题是,我需要传入配置文件中的任何值,然后通过返回函数进行解析。即,用户知道该特定查询的值将为condition.item.condition.temp。我正试图编写一个涵盖所有内容的函数,并为我所知道的输出传递配置值。因此,在一个查询中,我可能想要condition.item.condition.temp值,在另一个查询上,我可能需要condition.wind.chill.
我不确定我是否100%理解你想要做的事情,但如果你收到一个JS对象json
和一个格式为field1.field2.field3
的字符串,并试图获得json.field1.field2.field3
的值,那么你可以做这样的事情:
function getJsonValue(json,string) {
var vals = string.split(".");
for (var i = 0; i < vals.length; i++) json = json[vals[i]];
return json;
}
对于一个给定的对象来说,它是这样工作的:
var obj = { field1: { field2: { field3: "Hello!" } } };
var res = getJsonValue(obj, "field1.field2.field3");
console.log(res); // prints Hello
查看lodash获取
_.get(json, 'key1.key2.key3')
您可以根据当前代码构建"路径",并要求lodahs为您获取价值。
做一个eval怎么样?
var json = {
'one': {
'two': {
'three': {
'four': 4
}
}
}
};
alert(eval("json['one']['two']['three']['four']"))
相关文章:
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 将JSON插入MongoDB中,自动转换字符串中的日期
- 以点表示法转换字符串以获取对象引用
- 在 JavaScript 中转换字符串 11/28/2014 11:00 AM 到现在
- 为什么在主干的字符串数组中转换字符串数组
- 如何简单地转换字符串
- AngularJS如何转换字符串“;yyyyMMdd”;迄今为止
- 如何防止htmlspecialchar(PHP)转换字符串中的整数
- 刷新Aurelia中的i18n转换字符串插值
- 发布时禁用转换字符串
- 转换字符串货币
- 在javascript ajax调用中转换字符串到数组
- 转换字符串包含时间到24小时的时间,我可以做数学与- jQuery
- IE javascript引擎在转换字符串到日期时呈现NaN
- 如何转换字符串“a,b,c,d……”成a.b (c, d . .);来执行
- 如何在javascript中转换字符串到日期格式
- 如何在嵌套数组中转换字符串数组
- 在javascript中转换字符串日期
- 转换字符串在印度格式的javascript
- Javascript转换字符串到数组的对象