"[{\"entity_id\":\"253\",\"pozisyon\":1},{\"entity_id" /> "[{\"entity_id\":\"253\",\"pozisyon\":1},{\"entity_id" />
SORU
20 HAZİRAN 2011, PAZARTESİ


Raylar JSON doğru (dizi tamsayı tuşları ile karma hale)bir WordPress kullanmak değil, çözme


her zaman Raylar için jQuery ile JSON nesneleri bir dizi yazmak istediğim, şöyle bir sorunum var. Eğer diziyi ben stringify eğer bir WordPress kullanmak doğru çalışmalarını yaptığını görebiliyorum:

< . p ^"shared_items"=>"[{\"entity_id\":\"253\",\"pozisyon\":1},{\"entity_id\":\"823\",\"pozisyon\":2}]"

Ama eğer sadece dizi göndermek eğer ajax arama veri olarak alıyorum:

< . p ^"shared_items"=>{"0"=>{"entity_id"=>"", "Pozisyon"=>253 "1"}, "1"=>{"entity_id"=>"823", "pozisyon"=>"2"}}

Eğer sadece düz bir dizi göndermek ise çalışır:

< . p ^"shared_items"=>[""] entity_253

Neden Raylar garip karma dizi değişiyor? Aklıma gelen tek sebep Raylar yazın burada (bir şekilde jQuery çağrısında set var mı? yok çünkü doğru içeriğini anlayamaz ki:

SharedListsController tarafından işleme#oluşturun

Teşekkür ederim!

Güncelleme: Bir dizi, bir dize olarak verileri gönderiyorum ve dizi dinamik olarak kullanılarak oluşturulur .() işlevi itin. Çalıştı ile dolar.post ve $.ajax, aynı sonuç.

CEVAP
28 Temmuz 2012, CUMARTESİ


Birisi bunun üzerine tökezledi ve daha iyi bir çözüm istiyor diye, "contentType: 'application/json'" seçeneğini belirleyebilirsiniz .ajax çağrı ve Raylar var düzgün-string tüm değerleri ile tam sayı-anahtarlı karma haline garbling olmadan JSON nesne ayrıştırma.

Yani, özetlemek gerekirse, benim sorunum bu idi:

$.ajax({
  type : "POST",
  url :  'http://localhost:3001/plugin/bulk_import/',
  dataType: 'json',
  data : {"shared_items": [{"entity_id":"253","position":1}, {"entity_id":"823","position":2}]}
});

Raylar şeyler olarak ayrıştırma olmuştur:

Parameters: {"shared_items"=>{"0"=>{"entity_id"=>"253", "position"=>"1"}, "1"=>{"entity_id"=>"823", "position"=>"2"}}}

(NOT: şimdi javascript nesne stringifying ve içerik türü, bu yüzden raylar bizim dizeyi ayrıştırmak için nasıl bilecek) belirterek: Oysa bu

$.ajax({
  type : "POST",
  url :  'http://localhost:3001/plugin/bulk_import/',
  dataType: 'json',
  contentType: 'application/json',
  data : JSON.stringify({"shared_items": [{"entity_id":"253","position":1}, {"entity_id":"823","position":2}]})
});

Raylar: güzel bir nesne olur

Parameters: {"shared_items"=>[{"entity_id"=>"253", "position"=>1}, {"entity_id"=>"823", "position"=>2}]}

Bu Raylar Ruby 1.9.3 3, benim için çalışıyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GenTechPC

    GenTechPC

    1 Temmuz 2007
  • kidrauhl

    kidrauhl

    15 Ocak 2007
  • LearnKey

    LearnKey

    19 AĞUSTOS 2008