我有一个关于在JSON中搜索特定信息的问题.例如,我有这个JSON文件:
{
"people": {
"person": [
{
"name": "Peter",
"age": 43,
"sex": "male"
}, {
"name": "Zara",
"age": 65,
"sex": "female"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何通过名称找到一个特定的人并用jQuery显示那个人的年龄?例如,我想在JSON中搜索名为Peter的人,当我找到匹配项时,我想显示有关该匹配项的其他信息(例如,在本案例中名为Peter的人),例如人的年龄.
我正在尝试遍历嵌套对象以检索由字符串标识的特定对象.在下面的示例对象中,标识符字符串是"label"属性.我无法绕过如何遍历树以返回适当的对象.任何帮助或建议将不胜感激.
var cars = {
label: 'Autos',
subs: [
{
label: 'SUVs',
subs: []
},
{
label: 'Trucks',
subs: [
{
label: '2 Wheel Drive',
subs: []
},
{
label: '4 Wheel Drive',
subs: [
{
label: 'Ford',
subs: []
},
{
label: 'Chevrolet',
subs: []
}
]
}
]
},
{
label: 'Sedan',
subs: []
}
]
}
Run Code Online (Sandbox Code Playgroud) 我有一个具有3级嵌套的JavaScript对象.我很难从第3级嵌套中获取值.
我已经对SO进行了一些研究并得到了基本的循环,但我似乎无法超越第一级.
这是我的代码
var customers = {
"cluster": [{
"id": "cluster1.1",
"color": "blue",
"flights": "784",
"profit": "524125",
"clv": "2364",
"segment": [{
"id": "segment1.1",
"color": "green",
"flights": "82",
"profit": "22150",
"clv": "1564",
"node": [{
"id": "node1.1",
"color": "orange",
"xpos": "1",
"ypos": "1"
}, {
"id": "node1.2",
"color": "orange",
"xpos": "1",
"ypos": "2"
}, {
"id": "node1.3",
"color": "orange",
"xpos": "1",
"ypos": "3"
}, {
"id": "node1.4",
"color": "orange",
"xpos": "1",
"ypos": "4"
}]
}, {
"id": "segment1.2",
"color": "red",
"flights": "2", …Run Code Online (Sandbox Code Playgroud) 我已经尝试过这个,它允许null,undefined和完全省略要保存的密钥:
{
myField: {
type: String,
validate: value => typeof value === 'string',
},
}
Run Code Online (Sandbox Code Playgroud)
这不允许''(空字符串)被保存:
{
myField: {
type: String,
required: true,
},
}
Run Code Online (Sandbox Code Playgroud)
如何在不禁止空字符串的情况下强制一个字段是 aString并且存在并且既不在 Mongoose 中null也不undefined在 Mongoose 中?
例如,我有这样一个对象:
var a = {
'light': 'good',
'dark' : {
'black': 'bad',
'gray' : 'not so bad'
}
}
Run Code Online (Sandbox Code Playgroud)
和这样的代码:
var test = function(obj) {
// do smth with object
// I need to get obj's name ('dark' in my way)
}
test(a.dark);
Run Code Online (Sandbox Code Playgroud)
如何在函数体中获取对象的名称.所以我的意思是我应该知道obj的名字是"黑暗的".
我已经尝试用firebug检查对象,但它只显示对象的属性.它没有显示一些内部方法或属性,我将能够知道
谢谢.
我正在使用javascript(在服务器端和客户端)开发Web应用程序.我作为json发送来回数据,我希望能够在另一方面解析它.问题是我内部有几层嵌套对象,所以这就是我被困住的地方.例如,我发送以下数据:
var data = {};
data.title = "My Title";
data.metric = {
fact : "Malicious code detected",
technique : "XSS"
};
data.subject = {
userType : "ADMIN",
userName : "Jack",
clientNumber : "000",
terminal : "192.168.1.1"
};
data.context = {
environment : {
session : "00",
hostname : "mainServer",
sysType : "production"
},
resource : {
wpt : "DIA",
pid : "1024"
}
};
Run Code Online (Sandbox Code Playgroud)
另一方面,当我收到它时,我只想完全遍历此对象,并打印其内容.我在stackoverflow上看到了很多类似的问题,但没有一个有用.这是我到目前为止所做的:
function display(data) {
var resp = "";
var prop = null;
var dataJSON = JSON.parse(data); …Run Code Online (Sandbox Code Playgroud) 我有一个树对象,它是不规则的树,每当我运行代码时,孩子的名字和键值就可以更改。例如:
{
addressRouter: 192.168.0.1,
addresses:
{
address1: 'A',
},
{
address2: 'B',
},
{
ports: [
{
portA: 'C',
portB: null
},
}
route: 'D',
}
Run Code Online (Sandbox Code Playgroud)
所以名称:“ addressRouter”,“ addresses”,“ address1”等及其键是不可预测的,但是我需要将树对象转换为以下格式的数组:
addressRouter
addresses/address1
addresses/address2
addresses/ports/portA
addresses/ports/portB
route
Run Code Online (Sandbox Code Playgroud)
然后把钥匙放在旁边。
我有此功能来构造树,这是正确的:
const iterate = (obj, obj2) => {
Object.keys(obj).forEach(key => {
obj2[key] = obj[key];
if (typeof obj[key] === 'object') {
iterate(obj[key], obj2)
}
})
}
Run Code Online (Sandbox Code Playgroud)
但是在调试之后,我意识到它并没有获得所有分支。
本主题针对PHP和Rails在本网站上进行了讨论,但我没有看到标准JavaScript的任何内容.
如果我的JSON对象在一对中具有空值,则它看起来像这个id:null但我需要它看起来像这个id:""
由于JSON不支持单引号,我不确定如何执行此操作.
目前的结果
{"id":"e6168d55-1974-e411-80e0-005056971214","label":"List","parentId":null}
Run Code Online (Sandbox Code Playgroud)
期望的结果
{"id":"e6168d55-1974-e411-80e0-005056971214","label":"List","parentId":""}
Run Code Online (Sandbox Code Playgroud) 当它们匹配正则表达式(例如**myVar**)时,我需要查找和替换对象中的值;我需要循环的对象是用户定义的,结构各不相同。
这是一个示例对象,为简单起见进行了缩短。
var testObject = {
name: "/pricing-setups/{folderId}",
method: "POST",
endpoint: "/pricing-setups/:folderId",
functionName: "create",
Consumes: null,
filename: "apicontracts/pricingsetups/PricingSetupServiceProxy.java",
pathParam: [
{$$hashKey: "06S",
key: "folderId",
value: "**myVar**"}
],
queryParam: [],
request_payload: "{'title':'EnterAname'}",
returnList: []
}
Run Code Online (Sandbox Code Playgroud)
这个对象被传递到一个主函数中,该函数使用传入的对象构建一个 angularjs 资源对象。
这是我正在使用的结构:
function getTestResult(dataSource, options) {
//input into the service should be api obj and selected environment obj
//extend the passed object with options if passed
var opts = $.extend({}, dataSource, options);
//swap the {param} syntax for :param in opts.endpoint
opts.endpoint = opts.endpoint.replace(/\}/g, "").replace(/\{/g, …Run Code Online (Sandbox Code Playgroud)