2013-01-15 3 views
0

Comment est-ce que je peux emballer toutes les données ici dans un tableau? Ceci est généré automatiquement à partir d'un système de site Web et l'application que je l'alimente nécessite que les données soient dans un tableau. Il y a plusieurs ensembles de données dans le JSON, c'est à seulement 2 d'environ 5 ou 6.Comment est-ce que je peux emballer des objets JSON dans un tableau en utilisant Javascript ou Jquery?

collection: { 
id: "5096f729e4b02d37bef658f2", 
enabled: true, 
starred: false, 
type: 10, 
ordering: 3, 
title: "About", 
navigationTitle: "About", 
urlId: "about", 
itemCount: 0, 
updatedOn: 1347025745523, 
publicCommentCount: 0, 
folder: false, 
dropdown: false, 
tags: [ ], 
categories: [ ], 
homepage: true, 
typeName: "page", 
synchronizing: false, 
typeLabel: "page", 
fullUrl: "/" 
}, 

websiteSettings: { 
id: "5096f728e4b02d37bef658e0", 
websiteId: "5096f728e4b02d37bef658df", 
type: "Business", 
subject: "Personal", 
country: "US", 
state: "NY", 
markdownMode: false, 
simpleLikingEnabled: true, 
commerceEnabled: false, 
defaultPostFormat: "%y/%m/%d/%t", 
commentLikesAllowed: true, 
commentAnonAllowed: true, 
commentThreaded: true, 
commentApprovalRequired: false, 
commentAvatarsOn: true, 
commentSortType: 2, 
commentFlagThreshold: 0, 
commentFlagsAllowed: true, 
commentEnableByDefault: true, 
commentDisableAfterDaysDefault: 0, 
disqusShortname: "username", 
homepageTitleFormat: "%s - This is a test", 
collectionTitleFormat: "%c — %s - This is a test", 
itemTitleFormat: "%i — %s - This is a test", 
commentsEnabled: true, 
allowSquarespacePromotion: false, 
storeSettings: { 
storeTitle: "Test", 
returnPolicy: null, 
termsOfService: null, 
privacyPolicy: null, 
stockLevelAlertLimit: 5, 
useLightCart: false, 
stripeConnected: false, 
storeState: 3 
} 
} 
+1

@Passerby: PHP est mentionné nulle part dans la question. – PleaseStand

+0

Nous avons besoin de plus d'informations pour répondre à la question. Qu'essayez-vous de faire. Je veux dire que si vous voulez juste l'emballer dans un tableau, ajoutez simplement ['' '' '' '' '' '' au début et à la fin - vous semblez déjà avoir des objets json valides – Jonah

+0

Désolé. Donc, ces données JSON sont disponibles en ajoutant? Format = json-pretty sur les pages de la plateforme du site Squarespace. Exemple: http://squarespace.com/?format=json-pretty J'ai besoin d'utiliser Javascript ou Jquery dans mon application pour mettre les données dans des tableaux car l'application ne reconnaît que les données arrivant dans les tableaux. – jasonbarone

Répondre

1

Bon alors supposons que vous avez le JSON est revenu de l'API dans une variable appelée rawJson. C'est assez facile pour vous de faire avec jquery, par exemple avec getJSON. Maintenant, vous pouvez vous parvenir à ce que vous voulez avec ce code:

var rawJson = // get this yourself, pretend I'm inserting the JSON literal from the url you linked to above in your comments 
arrayYouWant = []; 

for (category in rawJson) { 
    for (key in rawJson[category]) { 
    arrayYouWant.push({key: rawJson[category][key]}) 
    } 
} 
0

Vous pouvez aussi plat ces deux objets et les convertir en un tableau, voir l'extrait ci-dessous.

var rawJSON = { 
 
    collection: { 
 
    id: "5096f729e4b02d37bef658f2", 
 
    enabled: true, 
 
    starred: false, 
 
    type: 10, 
 
    ordering: 3, 
 
    title: "About", 
 
    navigationTitle: "About", 
 
    urlId: "about", 
 
    itemCount: 0, 
 
    updatedOn: 1347025745523, 
 
    publicCommentCount: 0, 
 
    folder: false, 
 
    dropdown: false, 
 
    tags: [], 
 
    categories: [], 
 
    homepage: true, 
 
    typeName: "page", 
 
    synchronizing: false, 
 
    typeLabel: "page", 
 
    fullUrl: "/" 
 
    }, 
 

 
    websiteSettings: { 
 
    id: "5096f728e4b02d37bef658e0", 
 
    websiteId: "5096f728e4b02d37bef658df", 
 
    type: "Business", 
 
    subject: "Personal", 
 
    country: "US", 
 
    state: "NY", 
 
    markdownMode: false, 
 
    simpleLikingEnabled: true, 
 
    commerceEnabled: false, 
 
    defaultPostFormat: "%y/%m/%d/%t", 
 
    commentLikesAllowed: true, 
 
    commentAnonAllowed: true, 
 
    commentThreaded: true, 
 
    commentApprovalRequired: false, 
 
    commentAvatarsOn: true, 
 
    commentSortType: 2, 
 
    commentFlagThreshold: 0, 
 
    commentFlagsAllowed: true, 
 
    commentEnableByDefault: true, 
 
    commentDisableAfterDaysDefault: 0, 
 
    disqusShortname: "username", 
 
    homepageTitleFormat: "%s - This is a test", 
 
    collectionTitleFormat: "%c — %s - This is a test", 
 
    itemTitleFormat: "%i — %s - This is a test", 
 
    commentsEnabled: true, 
 
    allowSquarespacePromotion: false, 
 
    storeSettings: { 
 
     storeTitle: "Test", 
 
     returnPolicy: null, 
 
     termsOfService: null, 
 
     privacyPolicy: null, 
 
     stockLevelAlertLimit: 5, 
 
     useLightCart: false, 
 
     stripeConnected: false, 
 
     storeState: 3 
 
    } 
 
    } 
 
} 
 

 
var myObject = Object.assign({}, rawJSON.collection); // merging objects aka extend 
 
myObject = Object.assign(myObject, rawJSON.websiteSettings); 
 

 
// {a: 1, b: 2} => [['a', 1], ['b', 2]] 
 
var objAsAnArray=Object.keys(myObject).map((k)=>[k, JSON.stringify(myObject[k])]) 
 

 
console.log(objAsAnArray)

Questions connexes