2016-03-24 16 views
0

Çok boyutlu dizilere sahip bir .txt dosyası almaya çalışıyorum ve ajax aracılığıyla veriyi yükleyip veriyi siteme aktarıyorum. Veriler sadece düz metin olarak geri dönüyor ve JSON.parse() üzerinde kullandığım zaman bile hiçbir şey geri gelmiyor. Sorunlu dosya JSON olmadığıdırjQuery dizileri içeren diziler ve biçimlendirmeler JSON

array(array('industry' => 'Advertising/Media',array( 
     'no_hover' => 0, 
     'organization' => 'Marina Reef', 
     'existing_url => 'http://www.alphasoftware.com/marina-reef-case-study.asp', 
     'heading' => '<h3>Giant Touch Screen App</h3>', 
     'description' => 'Interactive brochure application running on a 46\" touch screen.', 
     'logo' =>'marina-reef-sized.pmg', 
     'large_image' => 'marina-reef-large.jpg', 
     'page_name' => 'marina'   
    )), 
     array('industry' => 'Construction/Engineering/Real Estate',array( 
     'no_hover' => 0, 
     'organization' => 'Al Reyami', 
     'existing_url => 'http://www.alphasoftware.com/al-reyami-case-study.asp', 
     'heading' => '<h3>Enterprise-wide System for Invoicing, Financial Management, Inventory, Human Resources, and More</h3>', 
     'description' => 'Global construction firm uses Alpha Anywhere as its enterprise development and deployment platform, because it required less code than other tools.', 
     'logo' =>'al-reyami-sized.png', 
     'large_image' => 'al-reyami-large.jpg', 
     'page_name' => ''  
    )) 
); 
+1

Dosyanız geçersiz JSON içeriyor. Json geçerli değilse, çözümleyici null değerini döndürür. – Nergal

cevap

0

: Ben dosyaya erişmek için bu kullanıyorum

: gibi

$.get("json/json_data.txt", function(json) { 

    json = JSON.parse(json); 
}); 

dosya görünüyor. Özel ayrıştırıcı yazmanız veya dosyayı geçerli JSON'a dönüştürmeniz gerekir. Sorun, 'dizi' diziler ve nesneler için kullanılıyor; Yapısını tamamen değiştirmek zorunda kalacaksınız. Ayrıca

JSON (çoğu) şeyler için çift tırnak ihtiyacı var ve => örnekleri hepsi ...

TL : için değiştirilmesi gerekir; DR Bunu ile bitirmek gerekir ve bunun kolay olmayacak:

Alternatif

[{ "industry": "Advertising/Media", "no_hover": 0, "organization": "Marina Reef", "existing_url": "http://www.alphasoftware.com/marina-reef-case-study.asp", "heading": "<h3>Giant Touch Screen App</h3>", "description": "Interactive brochure application running on a 46\" touch screen.", "logo": "marina-reef-sized.pmg", "large_image": "marina-reef-large.jpg", "page_name": "marina" }, { "industry": "Construction/Engineering/Real Estate", "no_hover": 0, "organization": "Al Reyami", "existing_url": "http://www.alphasoftware.com/al-reyami-case-study.asp", "heading": "<h3>Enterprise-wide System for Invoicing, Financial Management, Inventory, Human Resources, and More</h3>", "description": "Global construction firm uses Alpha Anywhere as its enterprise development and deployment platform, because it required less code than other tools.", "logo": "al-reyami-sized.png", "large_image": "al-reyami-large.jpg", "page_name": null }] , bunu gibi her özdeş giriş için 'anahtar' olarak 'sanayi' değeri kullanmak isteyebilirsiniz: { "Advertising/Media": { "no_hover": 0, "organization": "Marina Reef", .... }, "Construction/Engineering/Real Estate": { "no_hover": 0, "organization": "Al Reyami", "existing_url": "http://www.alphasoftware.com/al-reyami-case-study.asp", .... } }

Her iki yöntem de işe yarayacaktır, ancak daha sonra JSON nesnesine nasıl erişeceğinize bağlıdır.