0

私はJSONウィッチを持っています

{
      "English": "en",
      "Francais": "fr",
      "German": "gm"
  }

このデータをHTML構造で印刷する必要があります。魔女は次のようになります

<ul id="links">
            <li class="home">
                <a href="#"></a>
            </li>
            <li class="languages">
                <a href="#">EN</a>   ------ > FIRST LANGUAGE FROM JSON
                <ul class="available">  ----> OTHERS
                    <li><a href="#">DE</a></li>
                    <li><a href="#">IT</a></li>
                    <li><a href="#">FR</a></li>
                </ul>
            </li>
        </ul>

JavaScriptでは、データを取得してすべてのデータを同じ構造で出力する方法を知っていますが、例に示す構造でそれを行う方法は?

Javascriptでデータを取得しています

$.getJSON('js/languages.json', function(data) {
    console.log(data);
  /* $.each(data, function(key, val) {
    console.log(val);
  });*/
});
4

4 に答える 4

0

最初のオブジェクトのプロパティ/値用と残りのオブジェクト用に 1 つずつ、2 つの新しいオブジェクトを取得するためのビットを次に示します。あなたがそれを手に入れたら、それで何が行われるのかはまだはっきりしていませんが、それが役立つかどうか教えてください:

// This can be replaced with existing data or updated to var langs = data;
var langs = {"English": "en", "Francais": "fr","German": "gm" };


// jQuery map only works on objects after 1.6, heads up 
var lang_keys = $.map( langs, function( value, key ) {
  return key;
});

// Now that you have an array of the keys, you can use plain-ol shift()    

var primary_lang_key = lang_keys.shift();

// create and populate an object just for your first language:
var primary_lang = {};
primary_lang[primary_lang_key] = langs[primary_lang_key];

// Thanks to shift, we know that populating this object with lang_keys will
// only have remaining items:
var other_langs = {};
$.map( lang_keys, function( lang_key ) {
  other_langs[lang_key]  = langs[lang_key];
});

console.log(other_langs);
于 2013-09-16T07:10:23.203 に答える