WCF JSON Web服务删除方括号

时间:2011-09-16 16:09:35

标签: javascript iphone wcf web-services json

这方面似乎有一些问题,但我似乎找不到确定的答案。

我已经创建了一个返回完美JSON的WCF JSON Web服务,这已经使用jsonlint.com进行了澄清。 Web服务返回一个数组(List< myresults>),这似乎用方括号格式化JSON,如下所示:

  

[{ “图像”: “HTTP://www.mywebsite/myimage.jpg”}]

在iPhone平台上解析JSON似乎可以很好地处理反斜杠,但它与方括号不相称 - 我不得不使用这个手动删除它们:

  

[str stringByReplacingOccurrencesOfString:@“[”withString:@“”]; //(对于每个括号)

但是,我还想使用jquery在HTML网页中使用相同的JSON,看起来我遇到了同样的问题。当然有一种更合适的方法可以处理这些讨厌的方括号吗?

我真的很感激,如果有人可以发布一个简单的方法来处理括号 - 从Web服务或我的javascript代码中删除它们。

谢谢!

如果有帮助,我的Javascript如下:

  

$。getJSON(urlToMyWebService,function(data){

          var items = [];

          $.each(data, function(key, val) {
              items.push('<li id="' + key + '">' + val + '</li>');
          });

          $('<ul/>', {
              'class': 'my-new-list',
              html: items.join('')
          }).appendTo('body');
      });

2 个答案:

答案 0 :(得分:3)

方括号只表示一个数组。如你所知,既然你正在返回一个数组,它将有方括号。

你需要在JavaScript / Objective C上有一个数组,就是这样。

答案 1 :(得分:0)

HTML中的第一件事第一件事不能以数字开头,因此key使用id作为li无效。其次,您的JSON列表包含具有Image属性的对象,因此您可能需要这样:

$.each(data, function(key, val) {
    items.push('<li id="li_' + key + '">' + val.Image + '</li>');
});

这里是live demo