2010-12-07 4 views
2

J'utilise ce jQuery autocomplete plugin.mise en forme json objet retourné à partir de jQuery autocomplete

Je souhaite que mes données de retour soient au format json.

searchPopup:function(){ 
    $("input.searchField").autocomplete("myjson1.json", { 
     dataType: 'json', 
     parse: function(data) { 
     $.each(data.productList, function(k, v) { 
     jQuery(".searchPanel").append("<div class="+k+"><h2>"+k+"</h2><ul class="+k+"></ul</div>"); 
     $.each(v, function(k1, v1) { 
      $.each(v1, function(k2, v2) { 
      jQuery("ul."+k).append("<li>"+v2+"</li>"); 
      }); 
     }); 
     }); 
     }, 
     max: 50 
    }); 

    } 

Quand je suis analyse de ces données, il donne une erreur

c.split est pas une fonction

Comment cela peut-il être fixé?

{ 
"productList" : { 
    "Byproducts" : [ 
    { 
    "brand":"Bosch", 
    "productname":"Jigsaw blade", 
    "price":50 
    }, 
    { 
    "brand":"Bosch1", 
    "productname":"Jigsaw blade", 
    "price":51 
    }, 
    { 
    "brand":"Bosch2", 
    "productname":"Jigsaw blade", 
    "price":52 
    }, 
    { 
    "brand":"Bosch3", 
    "productname":"Jigsaw blade", 
    "price":53 
    } 
    ], 
    "Spareparts" : [ 
    { 
    "brand":"BoschS1", 
    "productname":"Jigsaw blade", 
    "price":50 
    } 
    ], 
    "Bybrand" : [ 
    { 
    "brand":"BoschBY" 
    }  
    ], 
    "Bycategory" : [{ 
    "brand":"BoschBYc", 
    "productname":"Jigsaw blade", 
    "price":50 
    } ] 
} 
} 
+2

Soyez si doux et reformater votre code s'il vous plaît. De cette façon, personne ne le lira réellement;) –

+0

+1 à @faileN, cette question n'est pas lisible, veuillez corriger le formatage avant de poster. Merci – marcgg

+0

Je pense que vous pourriez ne pas avoir posté tout votre code. Où utilisez-vous c.split? –

Répondre

2

Je suis en faveur d'une façon quelque chose de différent, comme (en utilisant le plugin jQueryUI):

$('input.searchField').autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       url: "myjson1.json", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json" 
       success: function (data) { 
        response(
        //this saves from having to make a new type to return. It's a       standard jQuery function. 
        $.map(data.Byproducts, function (item) { 
         return { 
          label: item.productname + ' ' + item.price, 
          value: item.brand 
         } 
        })) 
       } 
      }) 
     } 
+0

En fait, dans mon scenerio je ne sais pas combien de type de catégorie que je peux avoir dans l'objet JSON pour par exemple dans la structure de données est en cours Produit ( sous-produit ({data1, données2, more..data}) BrBrand ({data1, données2 , more..data}) Une autre catégorie ({data1, data2, more..data}) ) – Nidhi

+0

La façon dont je le ferais est de changer le retour pour dire quel type il fait partie du jeu de résultats et de les rendre tous d'un type cohérent. Juste mes deux cents. –

+0

Merci pour votre réponse :) Bonne journée! À la votre – Nidhi

Questions connexes