您好我有一些了解和使用JSON的问题。
通过AJAX请求,我尝试捕获一个大的JSON字符串。字符串可以在这里找到:
AJX看起来如下:
var $xhr;
function loadContent(href){
var href = href;
if($xhr !== undefined) { $xhr.abort(); }
$xhr = $.ajax({
url: href ,
success: function(data) {
$('#myJson').text($(data))
}
});
};
loadContent("https://services3.arcgis.com/rKOPqLnqVBkPP9th/arcgis/rest/services/Arbeitsmappe1/FeatureServer/0/query?where=Energietr_ger+%3D+%27Wind%27&outFields=*&f=pjson")
控制台回答:
错误:语法错误,无法识别的表达式:{" objectIdFieldName" :" FID"," globalIdFieldName" :"",
" geometryType" :" esriGeometryPoint"," spatialReference" :{ " WKID" :102100, " latestWkid" :3857},"字段" :[ { "名称" :" Netzbetreiber", "类型" :" esriFieldTypeString", "别名" :" Netzbetreiber", "则sqlType" :" sqlTypeNVarchar"," length" :256, "结构域" : 空值, "默认值" : 空值 }, { "名称" :" Anlagenschl_ssel", "类型" :" esriFieldTypeString", "别名" :"Anlagenschl�ssel", "则sqlType" :" sqlTypeNVarchar"," length" :256, "结构域" : 空值, "默认值" : 空值 }, { "名称" :" Energietr_ger", "类型" :" esriFieldTypeString", "别名" :"Energietr�ger", "则sqlType" :" sqlTypeNVarchar"," length" :256, "结构域" : 空值, "默认值" : 空值 }, { "名称" :" Stadt", " t jquery.min.js:2
这是jsonfile的开头。而且我不知道该怎么做因为我需要这种格式的json可以使用:
[{
"Netzbetreiber":"E.DIS AG",
"Anlagenschl�ssel":"E41860010000000000602072054200001",
"Energietr_ger":"Solar",
"Stadt":"Fredersdorf-Vogelsdorf",
"Postleitzahl":15370,
"Adresse":"Ringstr. 4",
"bla":"BB",
"Installierte Leistung":"2,4",
"EEG Strom":"2.235,00",
"Verg�tung":"1.044,86",
"vNNE":"34,42",
"Biomasseanlagen":"nein",
"Inbetriebnahmejahr":"24.01.08",
"Einspeisespannungsebene":"NS",
"FIELD15":"",
"bla2":"null",
"lat": "52",
"lng": "12.274"
},
{
"Netzbetreiber":"E.DIS AG",
"Anlagenschl�ssel":"E41860010000000000602072054200001",
"Energietr_ger":"Solar",
"Stadt":"Fredersdorf-Vogelsdorf",
"Postleitzahl":15370,
"Adresse":"Ringstr. 4",
"bla":"BB",
"Installierte Leistung":"2,4",
"EEG Strom":"2.235,00",
"Verg�tung":"1.044,86",
"vNNE":"54,42",
"Biomasseanlagen":"nein",
"Inbetriebnahmejahr":"24.01.08",
"Einspeisespannungsebene":"NS",
"FIELD15":"",
"bla2":"null",
"lat": "52",
"lng": "12.374"
}]
我尝试了parseJSON,stringify toString等等。我试图将AJAX请求的输出数据放入div,span或pre标签,但没有任何帮助。
有人在这里有一个很棒的主意吗?
谢谢,福尔克
答案 0 :(得分:1)
您从JSON响应中错误地创建了一个jQuery对象,这就是导致错误的原因。你到底想要达到什么目的?如果您只需要检查结果,那么您可以将数据记录到浏览器的控制台。然后打开浏览器开发工具中的console
标签。
以下代码行应该足够了。
console.log(JSON.parse(data));
要执行相反操作(将JS对象转换为JSON),您可以使用JSON.stringify()
。
var data = {};
data['Netzbetreiber'] = 'E.DIS AG';
console.log(JSON.stringify(data)); /* Outputs: {"Netzbetreiber":"E.DIS AG"} */
答案 1 :(得分:1)
我尝试触发相同的查询并发现,返回的JSON响应大约是50000行。由于@aross在成功中提到了JSON.parse(数据),你可以使用它来创建一个javascript对象,并尝试在其余的应用程序中使用该对象。
但是我的建议是获得一个JSON响应,如果可能的话,行数较少。 将此响应(数据)放入div不起作用javascript字符串实现很慢并且错误 - 如第{2.}段中提到的那样https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays。