2016-04-27 15 views
0

私は自分のHTMLをjavascriptで処理し、manifest.jsonファイルを読み込むようにしました。私はJavaScriptで解析し、テキストとして、各オブジェクトを読み取る必要Javascript - 各jsonオブジェクトをテキスト文字列として解析する方法

{ 
    "name": "Project", 
    "description": "A template project", 
    "icon": "img/icon.svg", 
    "version": "X.X.X.X", 
    "developer": { 
     "name": "Daniell Mesquita", 
     "url": "http://about.me/daniellmesquita" 
    }, 
    "shop_id": "1", 
    "manifest_version": 1, 
    "default_language": "en" 
} 

は、ここに私のJSONファイルのコードです。例:

<h1>+ name +</h1> 
<h2>+ description +</h2> 
<img src="+ icon +"/> 
<p>+ version +</p> 

「開発者」オブジェクトのサブオブジェクトを読み取るにはどうすればよいですか?

EDIT:検証されたjson。検証を手助けするために@ADreNaLiNe-DJCurious Concept's JSON Formaterに感謝します。

+0

あなた自身でそれを試しましたか?アイデアやコードを共有します。私たちはあなたが改善するのを助けることができるコードを与えないでください –

+0

var name = myJsonObject.name; –

+0

JSONをオブジェクトに構文解析した後、 'object.developer.name'を使用してください。 – Archer

答えて

0

jsonがString変数の中にある場合、それをオブジェクトに変換します。

var obj = JSON.parse(jsonString); 

var name = obj.name; 
var version = obj.version; 
var developerName = obj.developer.name; 

+0

ありがとうございます。私は今役立つと検証しました。 – Plasmmer

+0

ローカルの 'manifest.json'ファイルからどのようにロードできますか?そして、どのようにフレーズをHTMLの '+ phrase +'文字列として読み込むことができますか?前もって感謝します。 – Plasmmer

+0

manifest.jsonはどこにありますか?サーバーでは? –

0

次のように行う可能性があります。そして、あなたは、単一の値にアクセスすることができます。データ構造内にオブジェクトがネストされていても、オブジェクトのキー値のペアがフラットになります。

var data = { 
 
         "name": "Project", 
 
       "description": "A template project", 
 
         "icon": "img/icon.svg", 
 
        "version": "X.X.X.X", 
 
        "developer": 
 
          { 
 
           "name": "Daniell Mesquita", 
 
           "url": "http://about.me/daniellmesquita" 
 
          }, 
 
        "shop_id": "1", 
 
      "manifest_version": "1", 
 
      "default_language": "en", 
 
      }, 
 
stack = [[],[]]; 
 

 
function getKeyValuePairs(obj,stack) { 
 
    Object.keys(obj).forEach(e => obj[e] instanceof Object ? getKeyValuePairs(obj[e], stack) : (stack[0].push(e), stack[1].push(obj[e]))); 
 
} 
 
getKeyValuePairs(data, stack); 
 

 
document.write("<pre>" + JSON.stringify(stack,null,2) + "</pre>");

+0

インライン 'var data = {}'を使用する代わりにローカルの 'manifest.json'ファイルからどのようにロードできますか?そして、どのようにフレーズをHTMLの '+ phrase +'文字列として読み込むことができますか?前もって感謝します。 – Plasmmer

0

さてあなたは yourJsonVarName.developer.name yourJsonVarName.developer.url

try this使用することができます!

を追加しました

外部ファイルがドメイン内にある場合は多分あなたはJSONファイル内のデータを取得するためにこれを使用することができます。

$.getJSON("manifest.json", function(data) { 
     var name = data.developer.name; 
     var url = data.developer.url; 
    }); 
+0

ありがとう、それは動作します!しかし、HTMLで '+ phrase +'のような文字列を使う必要があります。ローカルの 'manifest.json'ファイルから' var json = {} 'の代わりにどのようにロードできますか? – Plasmmer

関連する問題