0

初心者の質問: JavaScript で次の文字列を初期データとして使用して、ユーザーの配列を作成および初期化しようとしています。

{ "user": {"notes": [{ "text": "Hello ", "date": "12\/1\/2013 5:01:36 AM", }], "name": "Alex"} }, { "user": { "notes": [{ "text": "Hi ", "date": "12\/1\/2013 5:15:19 PM"}, { "text": "It is me",  "date": "12\/1\/2013 6:23:54 PM"}], "name": "Anna"} }

一般的には可能ですか(どのように?)、それとも完全に間違っていますか?

4

3 に答える 3

0
  1. JSON コードが有効であることを確認し、JSONLintを使用してください。コードにエラーがあります。以下のコードで修正しました。

  2. JSON.parse()を使用してオブジェクトに転送します。

  3. すべてのブラウザーと互換性を持たせるには、json2も含まれていることを確認してください (すべてのブラウザーに JSON.parse 関数を呼び出すための JSON オブジェクトがあるわけではありません)。

  4. アンソニーが述べたように、結果は配列ではなくオブジェクトです。ユーザーリストを反復処理するには、jsfiddleまたは以下の例を参照してください。

var str = "[{user:...";
var userList = JSON.parse(str);

for(var i in userList){
    var user = userList[i].user;
    document.write(user.name + "<br/>");
}

正しい JSON

[
{
    \"user\": {
        \"notes\": [
            {
                \"text\": \"Hello \",
                \"date\": \"12/1/2013 5:01:36 AM\"
            }
        ],
        \"name\": \"Alex\"
    }
},
{
    \"user\": {
        \"notes\": [
            {
                \"text\": \"Hi \",
                \"date\": \"12/1/2013 5:15:19 PM\"
            },
            {
                \"text\": \"It is me\",
                \"date\": \"12/1/2013 6:23:54 PM\"
            }
        ],
        \"name\": \"Anna\"
    }
}
]
于 2013-01-14T11:13:22.810 に答える
0

JSON が無効です。構文エラーが含まれています(質問のタイプミスの可能性があります)-最初のユーザーの後に無効なコンマdateがあり、配列構文で囲まれていないオブジェクトのリストでもあります[]

修正された json と解析の例は次のとおりです。

デモ

var json = '[{ "user": {"notes": [{ "text": "Hello ", "date": "12\/1\/2013 5:01:36 AM" }], "name": "Alex"} }, { "user": { "notes": [{ "text": "Hi ", "date": "12\/1\/2013 5:15:19 PM"}, { "text": "It is me",  "date": "12\/1\/2013 6:23:54 PM"}], "name": "Anna"} }]';
//          ^ the list of objects need to be enclosed with []
var users = JSON.parse(json);

for(var i=0; i<users.length; i++)
{
  console.log(users[i].user.name);
}
于 2013-01-14T11:17:16.500 に答える
0

一般的に言えば、ajax 呼び出しを使用してその文字列を取得しましたよね?
また、最新のすべてのブラウザーで JSON.parse(strToBeConverted) を使用して、その文字列を JavaScript オブジェクトに変換でき
ます。
そのような組み込みの JSON オブジェクトがない場合はどうなるでしょうか? 以下のように、 1. Douglas Crockford によって作成されたこのサイト
からダウンロードした JS をインポート します。2. JSON.parse を使用してビジネスを行います。

于 2013-01-14T11:17:38.513 に答える