查找JSON值是否包含特定文本

时间:2017-10-13 05:07:40

标签: javascript json object key

我不确定这是否可行,因为我还没有找到任何相关信息。 我正在浏览一个JSON对象..

{"name": "zack",
 "message": "hello",
 "time": "US 15:00:00"},

{"name": "zack",
 "message": "hello",
 "time": "US 00:00:00"}

有没有办法可以选择仅包含“15:00:00”部分的时间属性?

感谢您的帮助

4 个答案:

答案 0 :(得分:1)

据我所知,如果你解析你的JSON,你就有了一个对象数组。因此,您可以使用filter函数并过滤掉那些与您在过滤函数中传递的条件不匹配的元素:



var parsedJson = [{"name": "zack",
 "message": "hello",
 "time": "US 15:00:00"},{"name": "zack",
 "message": "hello",
 "time": "US 00:00:00"}];
 
 var result = parsedJson.filter(item=>item.time === "US 15:00:00");
 
 console.log(result);
 




答案 1 :(得分:1)

您可以使用数组#过滤功能。它将返回一个具有匹配元素的新数组。如果新数组的长度为0,则表示未找到匹配项



var myJson = [{
    "name": "zack",
    "message": "hello",
    "time": "US 15:00:00"
  },

  {
    "name": "zack",
    "message": "hello",
    "time": "US 00:00:00"
  }
]

var m = myJson.filter(function(item) {
  return item.time === "US 15:00:00"

})

console.log(m)




findIndex也可用于查找是否包含值。如果值为-1,则表示json数组不包含符合条件的任何对象



var myJson = [{
    "name": "zack",
    "message": "hello",
    "time": "US 15:00:00"
  },

  {
    "name": "zack",
    "message": "hello",
    "time": "US 00:00:00"
  }
]

var m = myJson.findIndex(function(item) {
  return item.time === "US 15:00:00"

});
console.log(m)




答案 2 :(得分:1)

var arr = [{
    "name": "zack",
    "message": "hello",
    "time": "US 15:00:00"
}, {
    "name": "zack",
    "message": "hello",
    "time": "US 00:00:00"
}]

for (var i = 0; i < arr.length; i++) {
    var time = (arr[i].time.split('US '))[1];
    console.log(time);
}

答案 3 :(得分:1)

您可以使用filter功能过滤数组,并可以使用indexOf检查time字段是否包含15:00:00

E.g:

var json = [{
    "name": "zack",
    "message": "hello",
    "time": "US 15:00:00"
  },

  {
    "name": "zack",
    "message": "hello",
    "time": "US 00:00:00"
  }
];


 var resultObj = json.filter(item=>item.time.indexOf("15:00:00") !== -1);
 console.log(resultObj);