web-dev-qa-db-ja.com

jQuery.ajax投稿から返されたJSONを表示する方法

JSONデータに完全に基づいて構築されたプロジェクトでの作業を開始します。次のように返されます。

{"location":{"id":10,"contactPhone":"8675309","contactName":"bob","name":"bill smith","zipCode":"90210","state":"California","address1":"104 S. Olive","city":"Temecula","country":"USA"},"success":true}

.findやその他のフィルタリングを使用してDOMをトラバースし、成功フラグを見つけることで、HTML形式で返されたデータ(通常はテーブル)を快適に処理できます。 JSONを使用してこれを行う方法がわかりません。最後のオブジェクト「成功」にフィルターをかけ、それがtrueかfalseかを確認する必要があります。 HTMLで返されたデータを使用して、次のようにします。

submitHandler: function(form) {
    $.ajax({
     //other ajax stuff
      success: function(data) {
        var answer = $(data).find("td:eq(1)").text();
        var message = $(data).find("td:eq(3)").text();
        //console.log(data);
        if (answer == "True") {
          $('#messages').show().html(message);
      } else {
          $('#messages').show().html('Error logging in: ' + message);
      }
    }
  });
  return false;
  }
  1. この方法を使用した後でも、function(data)の意味が完全には理解できません。私は、それらの違いが何であるかを実際に理解せずに、data、msg、responseを使用しました。

この.ajax呼び出しを使用して、Webサービスに投稿し、返されたJSONを取得できます。

$.fn.serializeObject = function() {....}
submitHandler: function(form){
    var wrapper = {};
    var location = {};
    wrapper.location = $("#newLocation").serializeObject();
        $.ajax({
            type: $(form).attr('method'),
            url: '/web/service/' + 'locationService' + '/' + 'createLocation',
            dataType: 'json',
            async: false,
            data: JSON.stringify(wrapper),
            success: function(msg) {
                    console.log('success' + msg );
                    //need to traverse to success and if true, do something
            },
                    error: function(msg) {
                    console.log('failure' + msg );
                    //need to traverse to success and if false, do something
            }
    });
    return false;
}
  1. JSON文字列(文字列またはオブジェクト)の「成功」部分にどのようにフィルタリングしますか?
  2. JSON文字列のキー/番号のペアの正しい用語は何ですか(それでも正しいです)IE "contactPhone": "8675309 = "
  3. 「success」:「true」の場合、どのようにデータを表示しますか-私は自分でそれに取り組みますが、誰かが良い方法を持っているなら、私はいくつかのアドバイスをいただければ幸いです。どういうわけかテーブルに追加するだけだと思いますか?

    JSONについて多くの質問がありますが、私が与えられた助けが他の誰かを助けることができるように、一般的な方法で質問をWordにしようとしています。この投稿の長さをお詫びします。助けていただければ幸いです。リクエストがあれば、この質問を短縮/編集します。

10

ここでのメッセージはjson形式のオブジェクトです。あなたはそのような成功の価値を得ることができます:

success: function(msg) {
                    console.log('success' + msg.success );
                    if(msg.success) { //could be wrote: msg.success === true
                        //do some stuff
                    }
            },

"contactPhone": "8675309"

contactPhoneがキー、「8675309」が値です。ただし、サンプルでは、​​「contactPhone」値を取得するには、最初にロケーションオブジェクトを取得する必要があります。

var contactPhoneValue = msg.location.contactPhone;
4
A. Wolff

JSON(JavaScript Object Notation)は、軽量のデータ交換フォーマットです。人間は読み書きが簡単です。マシンが解析して生成するのは簡単です。 http://www.json.org/

これで、jsonオブジェクトのプロパティを読み書きするためのコードは、通常のjavascriptオブジェクトの場合と非常によく似ています。

$ajax({
  dataType:'json',
  success:function(data){
        console.log(data['success']);   //returns for whatever will be the value for succes
        //or
        console.log(data.success);   //returns for whatever will be the value for succes
        data.location['contactName'] = "new name";                    
 }
});

JavascriptとJsonオブジェクトへのアクセスと操作は同じです。
これは彼らにとって非常に良いガイドです:
http://www.dyn-web.com/tutorials/obj_lit.php



更新しました:
より良いバージョン、多分これは役立つかもしれません:
http://jsfiddle.net/hvzcg/4/

3
TaLha Khan