0

phonegapを使用してAndroidでアプリケーションを開発しています。jqueryを使用してAJAXを介してAndroidアプリケーションからJSON文字列を出力するWebサービスを呼び出す方法について、誰か助けてもらえますか? 助けてくれてありがとう。

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#Webサービスから取得したい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# Web サービスからの 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;

エディターは、予期しないトークンとして「デフォルト」について不平を言います。最初は、私はそれを無視します。コンパイルして、私のHTCvividで実行できます。ただし、他のデバイス (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 に答える