仅在对象(javascript)中解析值

时间:2015-03-07 02:04:02

标签: javascript

我有一个我正在拉的对象,我已经解析了它的值,我想解析(只是值)

所以我有

MyOBj = { "name" : "(JSON.stringified object)",
          "name" : "(JSON.stringified object)" }

让JSON.parse'只是一个对象的值,特别是不止一个。可以使用一些见解,谢谢!

2 个答案:

答案 0 :(得分:2)

如果您使用Underscore,您只需使用Values帮助器返回对象中所有值的数组。


选项1:使用下划线

来自Underscore文档 - > Underscore: Object, Values

<强> values_.values(对象)
返回对象自身属性的所有值。

_.values({one: 1, two: 2, three: 3});
=> [1, 2, 3]

因此,为了从您的对象中获取您的值,您只需包含Underscore库并使用以下代码:

var myValues = _.values(MyOBj);
myValues;
// => ["(JSON.stringified object)", "(JSON.stringified object)"]

我强烈推荐Underscore,因为你可以为你的对象的键做同样的事情,以及执行一堆其他有用的功能。


选项2:纯JS解决方案

如果你发现自己处于这个函数的整个Underscore库中,那么你手上会有很多代码膨胀。相反,您可以前往this StackOverflow question,其中qubyte概述了许多解决方案。它们几乎都定义了帮助器来准确执行您正在寻找的功能,这就是为什么Underscore从一开始就非常有用。

答案 1 :(得分:1)

你可以这样做 -

var myObj = {
  'obj1': '{ "child1": "child Value 1", "child2": "child Value 2" }',
  'obj2': '{ "child1": "child Value 3", "child2": "child Value 4" }'
}

var keys = Object.keys(myObj);
for (var i = 0; i < keys.length; i++) {
  var str = myObj[keys[i]];
  console.log(JSON.parse(str));
}
Check the console