JSON çıkış biçimi ve nasıl Çince karakter desteği nasıl değiştirilir?

2 Cevap php

Şu anda MySQL benim JSON çıktısını almak için aşağıdaki kodu kullanarak.

<?php


$session = mysql_connect('localhost','name','pass'); 

mysql_select_db('dbname', $session); 


    $result= mysql_query('SELECT message FROM posts', $session); 
 $somethings = array();  
 while ($row = mysql_fetch_assoc($result)) {  
    $somethings[] = $row; 
 } 

?> 

<script type="text/javascript"> 
    var somethings= <?php echo json_encode($somethings); ?>; 
</script> 

Ve çıktı:

<script type="text/javascript"> 
    var somethings= [{"message":"Welcome to Yo~ :)"},{"message":"Try iPhone post!"},{"message":"????" (the ???? meant to be chinese character)}]; 
</script>

Burada nasıl böyle bir biçime benim çıkışını değiştirebilirsiniz soru şudur:

<script type="text/javascript"> 
userAge = new Array('21','36','20'),
userMid = new Array('liuple','anhu','jacksen');
</script>

Ben şu kodla sonra kullanarak olacak ki:

 var html = '
<table class="map-overlay">
  <tr>
    <td class="user">' +
      '<a class="username" href="/' + **userMid[index]** + '" target="_blank"><img alt="" src="' +
        getAvatar(signImgList[index], '72x72') +
        '"></a><br>
      <a class="username" href="/' + **userMid[index]** + '" target="_blank">' +
      userNameList[index] +
      '</a><br>
      <span class="info">' + **userSex[index]** + ' ' + **userAge[index]** + '岁<br>
      ' +
      cityList[index] +
      '</span>' +
      '</td>
    <td class="content">' + picString
      + somethings[index] + '<br>
      <span class="time">' +
      timeList[index] + picTips +
      '</span></td>
  </tr>
</table>
'; 

Ayrıca ne benim json çıkış Çince karakteri destekleyebilir?

Yardım ve okumak için teşekkürler!

2 Cevap

Sorunuzu tahmin iyi:

Bu nasıl JSON formatını değiştirmek için:

[{ key : "Value", key2 : "Value2" }, { key : "Another Value", key2 : "Another Value2" }]

Bu biçimi:

var Keys = ["Value", "Another Value"];
var Key2s = ["Value2", "Another Value2"];

Cevap: Sen olmamalıdır. JSON ile çalışmak için iyi bir veri formatı olduğunu ve kendi kendine yeten bulunuyor. Normalde değişkenleri bir JSON nesne anahtarları olacağını değiştirirseniz, size "veri biçimi" kullanılacağı nereye gidiyor son derece bağımlı yapıyoruz. Değişken adı çatışmalar neredeyse garanti edilir. Hiçbir avantajı da var, JSON nesneleri veri zaten erişimi saçmadır.

Update: You could easily build this format by looping through your results, putting them into arrays and printing out Javascript code, it's not difficult. Despite that I'm not going to post the code here, since it's terrible practice. Instead, all you need to do is slightly change the code that will use this data:

// old
var html = '...' + key[index] + '...' +key2[index] + '...';

// new
var html = '...' + data[index].key + '...' + data[index].key2 + '...';

Çince karakterler gibi, Javascript / JSON özünde UTF8, bu nedenle Çince karakterler ile hiçbir sorunları var. Sadece JSON olarak onları paketlemek zaman karakterleri UTF8 kodlanmış olduğundan emin olun.

Ben yardım edemem, ancak bir daha zarif bir çözüm kullanmanızı öneririz değil mi? Eğer ajax kullanarak düşündünüz mü?