0

我一直在用phonegap在android中开发一个应用程序。任何人都可以帮助我如何调用我的 web 服务,通过我的 android 应用程序通过 AJAX 和 jquery 输出 JSON 字符串?非常感谢你的帮助。

我的 Jscript 中有这段代码:

$(document).bind("mobileinit", function(){
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
});

$.ajax({
  type: "POST",
  timeout: moneTimeout,
  url: "http://10.0.2.2:49878/SampleProject.aspx?p_trxn_type=doLogin&p_phoneNumber="+phoneNumber,
  error: function (xhr, status, errorThrown)
  { 
   alert(xhr.status);
  },
  dataType : "json",
  cache:false,
  async:false,
  success: function (ret)
  {
   try{
    var jsonObj = eval('(' + ret + ')');
    alert(jsonObj.Contacts.Contact['@phoneNumber']);
    alert(jsonObj.Contacts.Contact.LastName);
    alert(ret.Contacts.Contact['@phoneNumber'])
    alert(ret.Contacts.Contact.LastName);
   }
   catch(ex){
    alert(ex.message);
   }
   console.log(ret);
   alert(ret.length);
   alert(ret);
   alert(typeof ret);
   alert("success");
  }
 });

这是我喜欢从我的 c# webservice 获取的 JSON 数组:

    {"Contacts":{"Contact":{"@phoneNumber":"0002221111","@countryCode":"1","@typeCode":"73","@type":"Default, Mobile, DefaultContactNumber","@id":"04359c0dcca64638a5fcbb17b386ceed","Salutation":"Mr.","FirstName":"Tom","MiddleName":null,"LastName":"Cruise","NameSuffix":null,"PrimaryAddress":{"Street":{"#cdata-section":"3135 Teodoro Drive"},"Street2":{"#cdata-section":""},"City":{"#cdata-section":"Detroit"},"State":"MS","Country":"US","Postal":"48228"}}}

我仍然收到警报:错误,并且它不显示来自我的 c# webservice 的 JSON 字符串数组

4

2 回答 2

1

如果您正在寻找特定的 jquery。也许这会有所帮助

$.getJSON("http://yoururl.com?jsoncallback=?",  {
       requestParam: "someValue",  },  function(data) {
        //handle data  
       }
    );

有关更多信息,您可以查看:http ://api.jquery.com/jQuery.getJSON/

于 2012-04-23T10:56:52.177 回答
0

对我来说,我正在使用 Eclipse Helio 在 Android 上进行 phonegap 开发。我正在编写以下代码:(使用 Youtube API 和 JSONC 格式)

var myJsondoc = JSON.parse(data.text);
var writeintoHTML = document.getElementById('the_list');
writeintoHTML += myJsondoc.data.items[0].player.default;

编辑抱怨“默认”为 Unexpected Token。起初,我忽略它。它编译并能够在我的 HTC 上运行。但是,当我在其他设备(Galaxy Tab 2.2、Galaxy S 2.3.4)上对其进行测试时,它们都无法正常工作。他们都有“Unexpected token default in file.....”的错误,因此,我将代码更改为使用YouTube API JSON格式。现在我所有的设备都在工作。只是 JSON 格式包含的数据比我需要的多,我试图使带宽使用率尽可能低。底线,我认为当变量与 oprand 同名时,JS 会抱怨变量。

于 2012-05-03T16:56:46.127 回答