我有一个在线JSON文件,看起来像这样:
[
{
"j": 0,
"i": 0,
"DepartureTime": "\/Date(1331667480000+0100)\/",
"ArrivalTime": "\/Date(1331668860000+0100)\/",
"Remarks": [],
"TravelStages": [
{
"ID": 0,
"DepartureStop": {
"WalkingDistance": 0,
"ArrivalTime": null,
"AlightingAllowed": false,
"DepartureTime": null,
"BoardingAllowed": false,
"RealTimeStop": true,
"Rank": 0,
"Lines": null,
"StopPoints": [
{
"ID": 1,
"Name": "1",
"X": 608127,
"Y": 6645778
}
],
"Zone": "1",
"X": 608133,
"Y": 6645768,
"ID": 2300500,
"Name": "Visperud (i Solheimvn)",
"District": "Lørenskog",
"Type": 0,
"Stops": [],
"ShortName": "VIS"
}]
我想要的是抓住 DepartureTime 和 ArrivalTime ,我看过一些关于如何解析flickr JSON的例子。但我无法弄清楚如何解析这个问题。我还想将 departureTime 和 arrivalTime 存储在两个单独的变量中,因为这两个变量的内容是自1970年以来以毫秒为单位的时间。有人可以给我一个提示a可以做到这一点,对Javascript / JSON来说是全新的
答案 0 :(得分:1)
你的项目中有jQuery吗?如果是这样,您可以像这样轻松解析JSON字符串
var obj = $.parseJSON(theJsonText);
alert(obj.DepartureTime);
如果没有,我建议包括JSON库(link)并使用它。
答案 1 :(得分:1)
假设您的json文件位于jsonfile.json
$.getJSON('jsonfile.json', function(data){
alert("Departure Time: "+ data.DepartureTime);
alert("Arrival Time: "+ data.ArrivalTime);
});
答案 2 :(得分:1)
$.getJSON('http://your.domain.example/path/to/file.json', function(data) {
departure_time=data.DepartureTime;
arrival_time=data.ArrivalTime;
do_something_with(departure_time,arrival_time);
});
然后使用字符串do_something_with(str,str)
和"\/Date(1331667480000+0100)\/"
(在您的示例中)调用"\/Date(1331668860000+0100)\/"
。
您仍然需要将日期转换为数字,例如通过运行:
parsed_date=new Date(parseInt(input_string.substr(7)));
//substr(7) cuts after "\/Date(", and parseInt ignores ")\/"
//but I don't know how it handles "+0100"
答案 3 :(得分:0)
这是一个包含对象的数组,因此您应该能够设置一些等于第一个索引的属性的变量。要像对象一样使用它,需要对它进行解析..所以要么是eval(thatJson),要么是$ .parseJSON(thatJson),然后遍历它。
var responses = [
{
"j": 0,
"i": 0,
"DepartureTime": "\/Date(1331667480000+0100)\/",
"ArrivalTime": "\/Date(1331668860000+0100)\/",
"Remarks": [],
...
}];
var dep = responses[0].DepartureTime;
var arr = responses[0].ArrivalTime;
答案 4 :(得分:0)
根据JSONLint.com,您的字符串不是有效的JSON。然而,这是一个与你的问题要求不同的问题。
假设您的字符串的有效子集
var a = '[{"j": 0,"i": 0,"DepartureTime": "/Date(1331667480000+0100)/", "ArrivalTime": "/Date(1331668860000+0100)/","Remarks": []}]';
var obj = $.parseJSON(a);
console.log(obj[0].ArrivalTime);