2017-06-12 3 views
-1

Je dois créer un tableau d'objets, chaque objet contenant des champs « LicenseRefNo », « FPPRNO », etc.Javascript convertir en tableau

Le site fait un appel ajax à un contrôleur C# qui retourne actuellement le JSON suivant :

"[{\"LicenseRefNo\":\"17/00031/HMO\",\"FPPRNO\":\"AGE146\"},{\"LicenseRefNo\":\"16/00031/HMO\",\"FPPRNO\":\"AGE146\"}]" 

cela semble être presque correct mais je dois mettre cela comme une propriété gridOptions.data d'un KOGrid. Il semble que le code javascript rencontre un problème car le KOGrid doit être un tableau observable, et pour en créer un, j'ai besoin d'un tableau javascript.

Comment puis-je convertir la chaîne que j'ai dans un tableau s'il vous plaît?

+0

Je savais que cette question allait descendre! Je me rends compte que c'est une question de débutant JS mais je dois commencer quelque part! –

+0

Copie possible de [Parse JSON en JavaScript?] (Https://stackoverflow.com/questions/4935632/parse-json-in-javascript) – JJJ

Répondre

5

JSON.parse(string) devrait faire l'affaire

+0

Hmmm ... Pas sûr à cause de la deuxième double-citation: '" [ "{\" LicenseRefNo \ "'. L'objet interne est également à l'intérieur des guillemets, ce qui peut être plus délicat que prévu. Si vous essayez de 'JSON.parse' cela, il lance:' Uncaught SyntaxError: Jeton inattendu L dans JSON à la position 4' –

+0

Je fais un violon, merci pour les commentaires – Epitouille

+0

JSON.parse est la magie dont j'avais besoin –

1

navires OberservableArray avec knock-out et vous pouvez en créer un avec

modifier: Je créé un violon avec un exemple de travail depuis le posté semblait être cassé

var viewModel = function() { 
 
    var yourLoadedArray =[{"LicenseRefNo":"17/00031/HMO","FPPRNO":"AGE146"},{"LicenseRefNo":"16/00031/HMO","FPPRNO":"AGE146"}]; 
 
    \t this.obsArr = ko.observableArray(yourLoadedArray); 
 
    this.test = "test"; 
 
}; 
 

 
    
 
ko.applyBindings(viewModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> 
 
<span data-bind="text: test"></span> 
 
<div data-bind="foreach: obsArr"> 
 
    <span data-bind="text: LicenseRefNo"></span> 
 
</div>

+0

Avez-vous essayez ce code? Il lance 'Uncaught SyntaxError: missing) après la liste d'arguments' en raison de la deuxième citation non échappée. –

+0

mis à jour ma réponse avec un violon de travail, désolé – subkonstrukt

2

L'exemple JSON que vous avez publié n'est pas valide certaines citations sont bizarres et JSON.parse ne fonctionnera pas directement. Voici un contenu JSON valide:

"[{\"LicenseRefNo\":\"17/00031/HMO\",\"FPPRNO\":\"AGE146\"},{\"LicenseRefNo\":\"16/00031/HMO\",\"FPPRNO\":\"AGE146\"}]" 

Êtes-vous sûr que le contenu que vous avez envoyé ce que vous obtenez? Ce n'est même pas une chaîne valide.

+0

ok merci, j'ai corrigé –