使用下拉菜单中的用户日期输入搜索JSON

时间:2016-10-31 20:42:43

标签: javascript jquery json ajax

我希望能够从三个不同的下拉菜单(日,月,年)中获取用户日期输入,并使用我通过将数据库导出到JSON文件来创建的JSON文件来撤回数据匹配用户输入的日期。

以下是我的JSON文件中的记录示例:

ex.getStackTrace()

如果用户输入与JSON数组中的日期匹配,那么我希望显示艺术家姓名和歌曲标题。我该怎么做呢?我之前从未使用过JSON。

提前感谢您的帮助!

4 个答案:

答案 0 :(得分:0)

让我们假设obj为您的JSON数据。

var output = [];
var searchField = "startDate";
var searchVal = year+"-"+month+"-"+day;
for (var i=0 ; i < obj.list.length ; i++)
{
    if (obj.list[i][searchField] == searchVal) {
        output.push(obj.list[i]["artistName"] + "," + obj.list[i]["songTitle"]);
    }
}

答案 1 :(得分:0)

你说&#34; JSON&#34;,但你的帖子包含看似原始的javascript对象。 JSON数据只是一个字符串,然后可以转换为对象。

另外,您希望使用filter来选择感兴趣的艺术家。

&#13;
&#13;
var userDate = "1995-01-14";
var itemString = '[{"id":"1","artistName":"REDNEX","songTitle":"COTTON EYE JOE", "startDate":"1995-01-14"}]'
var items = JSON.parse(itemString);
var filtered = items.filter(x => x.startDate === userDate);
for (var i = 0; i < filtered.length; ++i)
  console.log(filtered[i].artistName + ": " + filtered[i].songTitle);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用filter功能

data = {"items": [ 
{"id":"1","artistName":"REDNEX","songTitle":"COTTON EYE JOE","startDate":"1995-01-14"},
]};


function getArtistByDate(date) {
  items = data["items"];
  return items.filter(
      function(items){ return items["startDate"] == date }
  );
}

console.log(getArtistByDate("1995-01-14"));
console.log(getArtistByDate("1995-01-15"));

答案 3 :(得分:0)

我会使用Lodash的takeWhile():https://lodash.com/docs/4.16.4#takeWhile。 (此外,一旦你开始使用Lodash,你将会找到许多你不能没有的实用功能。)

import numpy as np 
from netCDF4 import Dataset 
volcgrp = Dataset('file_1.nc', 'r') 
var = volcgrp.variables['water_v'][:] 
print(var) 
newList = var.tolist() 
file = open('text.txt', 'w') 
file.write('%s\n' % newList) 
print("Done") 
volcgrp.close()