需要转换JSON格式

时间:2014-06-24 09:09:56

标签: javascript jquery ajax json string

您好我有一些了解和使用JSON的问题。

通过AJAX请求,我尝试捕获一个大的JSON字符串。字符串可以在这里找到:

my 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标签,但没有任何帮助。

有人在这里有一个很棒的主意吗?

谢谢,福尔克

2 个答案:

答案 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