2012-02-15 15 views
1

PHPでcURLを使用してGoogleのスプレッドシートからGoogle APIを使用してデータを取得しています。 AJAX HTTPリクエスト(jQueryを使用)を使用すると、すべてのデータを取得して配列に入れることができますが、<content>タグは汚れたJSONのように見えます。JavaScriptをJavaScriptオブジェクトに解析する

私は同様に、JSオブジェクトとしてデータを参照できるようにしたい:

alert(xml.feed.content.name); 

例コード:

$.ajax({ 
    type: "GET", 
    url: GtargetURL, 
    dataType: "xml", 
    success: function parseMyXML(xml){ 
     var Entries = new Array; 
     var i = 0; 
     $(xml).find("entry").each(function(){ 
     var content = $(this).find("content").text(); 
     Entries[i]=content; 
     i++; 
     }); 
     var myArray= new Array(); 
     myArray= Entries[1].split(","); 
     alert (myArray[1]); // Result: "test2" 
    }   
}); 

例XML:

<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gsx= 
<entry> 
<content type='text'>relativeid: 4, name: test2, type: teset3, multiples: yes, cat: yes</content> 
</entry> 
<entry>many more entries...</entry> 
</feed> 

おかげあなたが提供できるあらゆる助けのために。私は「セル」コールの代わりに、「リスト」コールを行うことができることを知って

https://spreadsheets.google.com/feeds/list/KEY-ID-HERE/1/public/basic 

が、このスーツ:何が価値がある、私はGoogleのAPI呼び出しのために、このURLの形式を使用していますについては

私の目的はより良い。

+0

中に、

relativeid: 4, name: test2, type: teset3, multiples: yes, cat: yes 

をオンにするTheShellfishMemeからの提案に従うことができますか? http://stackoverflow.com/questions/1773550/xml-json-conversion-in-javascript – crush

+0

方法:http://webapps.stackexchange.com/questions/11864/how-can-i-retrieve-records-from -a-google-spreadsheet-in-json-format –

答えて

2

ループ内で http://jsfiddle.net/GVUnF/ http://jsfiddle.net/rMMkD/1/のようにすることができます。

var jsonLikeString = "name:red, type:blue, multiples:green, cat:brown"; 

var jsObject = {}; 

var stringWithoutSpaces = jsonLikeString.split(' ').join(''); 
var splitStrings = stringWithoutSpaces.split(","); 
var kvPairArray = []; 

for(var i in splitStrings){ 
    if(splitStrings.hasOwnProperty(i)){  
     var kvPair = splitStrings[i]; 
     kvPairArray = kvPair.split(":"); 
     jsObject[kvPairArray[0]] = kvPairArray[1]; 

    } 
} 
alert(jsObject.cat); 

var foo = new Array; 

JavaScriptで正確に慣用ではないことに注意してください。

var foo = []; 

代わりに使用する必要があります。また

、配列に追加するためにあなたの代わりに、変数iを有し、かつそれをすべてのループを増分の

foo.push('something'); 

を使用する必要があります。

+0

この回答は素晴らしく簡単ですが、それほどうまく機能しません。このフィドルでは、 "undefined"ポップアップを見ることができます:http://jsfiddle.net/ZspQr/ – iammatthew2

+0

問題は、文字列にスペースが残っていたため、最初のキーを除くすべてが先行スペースを持っていたことでした。 http://jsfiddle.net/rMMkD/1/これで修正されています。 – TheShellfishMeme

+0

ありがとう! xmlからJSONへのプラグインと組み合わせると、これがうまくいくでしょう。とても有難い! – iammatthew2

3

あなたの質問には2つの部分があります

  • JSON
  • にXMLを有効にする方法にXMLを作成するにはJSON

をほとんどJSONでXMLにテキストをオンにする方法は、 JSONあなたはそれが

をオン http://www.thomasfrank.se/xml_to_json.html

のようなライブラリを使用することができます

{"animals": 
    {"dog":[ 
     {"name":"Rufus", 
     "breed":"labrador"}, 
     {"name":"Marty", 
     "breed":"whippet"}], 
    "cat": 
     {"name":"Matilda"}}} 

の中へ1​​

その後、あなたはこの記事を参照してください。JSONオブジェクト

+0

アドバイスをいただきありがとうございます。他の回答は私の質問に答えたが、あなたは助けてくれた。私はこのプラグインを使用して終了:http://www.fyneworks.com/jquery/xml-to-json/ – iammatthew2

+0

@ iammatthew2次に私の答えをupvoteする必要があります:) –

関連する問題