2011-11-06 14 views
-1

"123.152323,152.123232"からなる配列を "123.152323"と "152.123232"にどのように分けることができますか?アレイを2つのアレイに分ける

残りの文字列を受け取ると、文字列は次のようになります。

するResponseHandler({ "アイテム":[{ "名": "XXX"、 "場所":[ "xx.xxxxx"、 "xx.xxxxx"] ...

function responseHandler(json) { 
     var markers = new Array(); 
     for (var i = 0; i < json.items.length; i++) { 
      markers[i] = (json.items[i].location); 
     } 
} 

することができます私は、私はsplit()が存在することを知っていますが、文字列に名前、都市などの単なる位置よりも多くの情報があることはわかります

+5

(あなたがおよそjavascript basicsウェブ上でいくつかの読み物を探してみてくださいすることがあります)、それはJSONですか? 'JSON.Parse'を使ってそれを解析し、' eval'にフォールバックします... – Ryan

+0

なぜこの文字列をjsonとして扱うことができませんか? –

+0

@minitech:JSONのようには見えません。むしろ、それは実際の "JSO"です!彼は自分の変数を間違って表示しています。 –

答えて

0

なぜ車輪を改造するのでしょうか?有効なJSONオブジェクト、単純に使用しない理由JQuery.parseJSON

+4

jQueryの使用について何か言ったのはいつですか? – Zirak

+1

私はJSON解析を最初から再開発するのではなく、良い外部ライブラリを使うことを勧めました。 –

+3

@parapurarajkumar:誰もJSON構文解析を最初から再作成する必要はありません。現代のブラウザーはJSON.parseを持ち、古いブラウザーはeval( '(' + 'jsonStr +') ')を使用できます。 JSONは意図的にJavascriptで簡単に解析できるように設計されていることを覚えておいてください.JQueryのparseJSONは、JQueryを既に使用しているユーザーにとって便利で一貫性があります。 – hugomg

0

最新のブラウザには、ネイティブJSONメソッド(JSON.parse,JSON.stringify)。それらを使用するか、this one from googleのような外部ライブラリを使用してください。これは、(分割または正規表現検索の必要がないなど)、あなたの人生が容易になります:コメント後

function responseHandler(json) { 
    // use native (JSON.parse), json-sans-eval would be: jsonParse(json) 
    var myJson = JSON.parse(json) 
     ,markers = [] 
     ,i  = 0 
     ,len  = myJson.length; 
    for (; i < len; i = i+1) { 
     markers.push(myJson[i].location); 
    } 
    return markers; 
} 

編集:JSON-解析が必要ではないので、あなたは、JSオブジェクトを渡しています。

function responseHandler(json) { 
    var markers = [] 
     ,i  = 0 
     ,len  = json.length; 
    for (; i < len; i = i+1) { 
     markers.push(json.items[i].location); 
    } 
    return markers; 
} 
//for example 
var json = {"items":[ 
        {"name":"xxx","location":["xx.xxxxx","xx.xxxxx"]}, 
        {"name":"yyy","location":["yy.yyyyy","yy.yyyyy"]} 
        ] 
      }; 
var locations = responseHandler(json); 
//=> now locations[0][0] is 'xx.xxxxx', locations[1][0] 'yy.yyyyy' 

あなたが意味

+0

こんにちは あなたの返事をありがとう、私はあなたのソリューションを試してみましたが、それを動作させることはできません。私が受け取る文字列は、このように見えます。 レスポンスハンドラ({"items":[{"name": "xxx"、 "location": "xx.xxxxx"、 "xx.xxxxx"] ... – Philip

+1

この場合、解析は不要ですあなたは本物のjsオブジェクトを渡しているので) 'json.items [i] .location'を直接配列にプッシュすることができます。 – KooiInc

+0

それはうまくいきます、ありがとう!:)しかし、配列を2つの配列に分割する方法お互いに?今私は警告(マーカー[0])を行うとき、私はxx.xxxxx、xx.xxxxxを得る。または私は何かを逃していますか? – Philip