SQL创建的JSON无法在javascript

时间:2018-04-03 13:31:44

标签: javascript sql json

我在SQL中创建一个JSON文件,但'ROOT'的格式错误,可以在javascript中使用。

In Microsoft SQL server Management Studio 17.6:
select 
    a.Latitude Lat,
    a.Longitude Long
from
    Duurzamekaart.dbo.Poi a

FOR JSON AUTO, ROOT('markers')

结果:

{  
   "markers":[  
      {  
         "Lat":3.300000,
         "Long":3.400000
      },
      {  
         "Lat":4.400000,
         "Long":4.500000
      }
   ]
}

但javascript期望:

 markers = [  
      {  
         "Lat":3.300000,
         "Long":3.400000
      },
      {  
         "Lat":4.400000,
         "Long":4.500000
      }
   ]

如何让SQL以正确的格式写入,或者让javascript将标记看作数组,以便我可以使用例如:

markers[i].Lat

生成的版本会抛出两个错误:

Uncaught SyntaxError: Unexpected token :      markers.json:1
kaart.js:41 Uncaught ReferenceError: markers is not defined
at kaart.js:41

JSON文件未解析但存储在磁盘上并包含在我的HTML中:

<script type='text/javascript' src='json/markers.json'></script>    

2 个答案:

答案 0 :(得分:1)

您的两个示例都是不正确的JSON结构,您应该首先阅读https://www.w3schools.com/js/js_json_intro.asp

请注意第二个例子: 如果您收到JSON格式的数据,则可以将其转换为JavaScript对象:

var margin = {top: 10, right: 60, bottom: 60, left: 50},

答案 1 :(得分:1)

您需要将字符串解析为JavaScript对象:

HH:mm

然后您可以按照您描述的方式使用var rawJson = '{ "markers": [ (etc...) ] }'; var markers = JSON.parse(rawJSON).markers;