2012-11-13 24 views
0

我这里有一个问题,不知道如何解决它...如何切断json字符串?

我有一个JSON文件是这样的:

{"data":[{"kw":"48","val":"10","val2":"05"},{"kw":"49","val":"04","val2":"05"}]} 

但我需要这种格式:

[{"kw":"48","val":"10","val2":"05"},{"kw":"49","val":"04","val2":"05"}] 

在javascript/jQuery我做了一个ajax请求并获取json:

$.ajax({ 
    type : "POST", 
    cache : "false", // DEBUG 
    url : weburl, 
    dataType : "json", 
    contentType : "application/json; charset=utf-8", 
    success : function(data) { 
    // Strip data? 
    } 
    }); 

Doe有谁知道如何做到这一点? 谢谢!

+0

最简单的事情是将JSON解析到一个对象,然后将对象转换的“数据”属性回JSON。 – ken

+0

'data = data.data' – andlrc

回答

3
success : function (data) { 
    var array = data ? data.data : null; 
    // now perform the required operations with array variable. 
} 

这将仅返回数组,而不是包裹在一个对象。

+0

异步调用中没有返回 – epascarello

+0

由于这是一个异步调用,您的返回值可能无处被引用。所以这是无用的,虽然你的总体思路是正确的。 – Sirko

+0

谢谢!这是一个容易的:) – Nico

2
$.ajax({ 
    type: "POST", 
    cache: "false", // DEBUG 
    url: weburl, 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    success: function(data) { 
     var arrayYouWant = data.data; // http://thedailywtf.com/Articles/Data-Data-data-Data.aspx 
    } 
}); 
2

为什么你需要剥去它,你刚才提到它

success : function(data) { 
    var myArrayofObjects = data.data; 
} 
0

为了真正理解在Javascript中阅读Member operators,尤其是点符号。 JSON是Javascript的一个子集,JSON对象最终是一个Javascript对象。

0

不知道你的意思是归档。你的意思是简单地访问与数据属性关联的数组?

该数组与您的JSON字符串中的'data'属性关联。我可能会改变传递给成功函数的数据参数的名称。

试试这个:

$.ajax({ 
    type: "POST", 
    cache: "false", // DEBUG 
    url: weburl, 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    success: function(resp) { 
     var yourArray = resp.data; 
     console.log(yourArray); 
    } 
}); 
+0

存档=只是我的英语不好:) – Nico