2013-03-05 2 views
0

Je suis nouveau sur Three.js. Mon besoin est d'obtenir "DbgName": "mtl" du fichier JSON en utilisant JSONLoader de Three.js. Voici mes exemples de fichier JSON de Three.jschaîne d'analyse dans JSON three.js

{"metadata" : 
{"formatVersion" : 3.1, 
"sourceFile" : "json", 
"generatedBy" : "json", 
"vertices" : 20, 
"faces" : 81, 
"normals" : 0, 
"colors" : 0, 
"uvs" : 0, 
"materials" : 4}, 

"scale" : 1.000000, 
"materials": [{ 
"DbgColor" : 15658734, 
"DbgIndex" : 0, 
"DbgName" : "mtl1", 
"colorAmbient" : [0.0, 0.0, 0.0], 
"colorDiffuse" : [0.64, 0.64, 0.64], 
"colorSpecular" : [0.165, 0.165, 0.165], 
"illumination" : 2, 
"opticalDensity" : 1.0, 
"specularCoef" : 154.901961, 
"transparency" : 1.0 
} 
]} 

Quelqu'un pourrait-il donner quelques suggestions pour les same..Thanks

+0

S'il vous plaît si vous modifiez votre message, vérifiez la mise en forme de code. C'est horrible encore. – RvdK

Répondre

0

i obtenu le nom du matériau à partir du fichier JSON de cette façon ...

var loader = new THREE.JSONLoader(); 
loader.load(url,function(geometry,material){ 
....some code stuff........ 
var mName = materials.name; 
....some code stuff..... 
} 
+0

Veuillez ne pas ajouter "merci" comme réponse. Une fois que vous avez suffisamment [réputation] (http://stackoverflow.com/faq#reputation), vous pourrez [voter questions et réponses] (http://stackoverflow.com/privileges/vote-up) que vous trouvé utile. – Linuxios

0

THREE.JSONLoader n'est pas un générique JSON chargeur: il charge mailles et matériaux à partir de fichiers JSON qui ont propriétés spécifiques.

Pour charger vos propres trucs, vous pouvez toujours prendre (copier-coller) la partie de requête AJAX du chargeur, qui est ici: https://github.com/mrdoob/three.js/blob/r56/src/loaders/JSONLoader.js#L29

Notez qu'une fois que vous avez obtenu le fichier texte, l'analyse syntaxique à un objet JS est trivially accomplished avec fonction fournie standard du navigateur: var mystuff = JSON.parse(fileTextContents)

+0

{ "métadonnées": { "formatVersion": trois, "sourceFile": "trois", "generatedBy": "trois", "sommets": 6, "faces": 10, « normals ": 0, "couleurs": 0, "UVS": 0, "matériaux": 1 }, "échelle": 1.000000, "matériaux": [{" DbgColor »: 15658734, "DbgIndex": 0, "DbgName": "Meterial1" \t}] ..............,} C'est mon exemple de fichier JSON. Je voudrais lire le "DbgName" en utilisant JSONLoader de THREE.js. – user2089677

+0

Vous auriez dû dire que, en premier lieu, 'DbgName' est placé dans la propriété' name' du matériau correspondant ([source] (https://github.com/mrdoob/three.js/blob/r56/src/loaders /Loader.js#L435)) – Tapio