1. ホーム
  2. javascript

[解決済み] オブジェクトと配列の複雑なJSONネスト

2022-03-10 11:09:34

質問

JSONオブジェクト/配列の構文と構造について困っています。

{ 
  "accounting" : [   
                     { "firstName" : "John",  
                       "lastName"  : "Doe",
                       "age"       : 23 },

                     { "firstName" : "Mary",  
                       "lastName"  : "Smith",
                        "age"      : 32 }
                 ],                            
  "sales"      : [ 
                     { "firstName" : "Sally", 
                       "lastName"  : "Green",
                        "age"      : 27 },

                     { "firstName" : "Jim",   
                       "lastName"  : "Galley",
                       "age"       : 41 }
                 ] 
} 

以下の情報を格納するオブジェクトと配列のネスト構造を作りたい。

{
"problems": [{
    "Diabetes":[{
        "medications":[{
            "medicationsClasses":[{
                "className":[{
                    "associatedDrug":[{
                        "name":"asprin",
                        "dose":"",
                        "strength":"500 mg"
                    }],
                    "associatedDrug#2":[{
                        "name":"somethingElse",
                        "dose":"",
                        "strength":"500 mg"
                    }]
                }],
                "className2":[{
                    "associatedDrug":[{
                        "name":"asprin",
                        "dose":"",
                        "strength":"500 mg"
                    }],
                    "associatedDrug#2":[{
                        "name":"somethingElse",
                        "dose":"",
                        "strength":"500 mg"
                    }]
                }]
            }]
        }],
        "labs":[{
            "missing_field": "missing_value"
        }]
    }],
    "Asthma":[{}]
}]}

しかし、どのようなやり方が正しいのか、さっぱりわかりません。 JavaScriptのオブジェクトを作ればいいのでしょうか? このプロジェクトでは、JSONは意味があるのでしょうか?

このようなものを設定するための正しい構文は何でしょうか?

これまでの私のコードはこちらです。

$(document).ready(function() {
    $.getJSON('js/orders.json', function(json) {
      $.each(json.problems, function(index, order) {
        $('.loadMeds').append('<p>' + order.name + '</p>')
      });
    });
});

解決方法は?

最初のコードはJavascriptのコードの例で、これは似ていますが、JSONではありません。JSONには、1) コメントと、2)JSONのための var キーワード

JSONにコメントがないですが、この場合は var で、このように始めます。

orders: {

[{}] は配列の中のオブジェクトを意味し、どこでも必要なものではありません。エラーではありませんが、目的によっては複雑すぎるのです。AssociatedDrugはオブジェクトとしてうまく機能するはずです。

"associatedDrug": {
                "name":"asprin",
                "dose":"",
                "strength":"500 mg"
          }

また、空のオブジェクトラボは何かで埋める必要があります。

それ以外は、あなたのコードは大丈夫です。javascriptに貼り付けるか、あるいは JSON.parse() メソッド、または他のパースメソッド( は使用しないでください。 )

アップデート2の回答がありました。

obj.problems[0].Diabetes[0].medications[0].medicationsClasses[0].className[0].associatedDrug[0].name

は 'aspirin' を返します。しかし、これはどこでもフォアグラウンドに適しています。