2

適切にフォーマットされた JSON 文字列を構築する関数をいくつか作成しています。これを解析して JSON オブジェクトに変換できます。

JSONLint でオブジェクトが失敗し、次のエラーが発生します。

syntax error, unexpected TINVALID at line 2

[
    SERVER: {
        ip = 10.10.10.1,
        port = 8100
    },
    TYPES: [
        ssh,
        shht
    ]
]

これで JavaScript オブジェクトの配列が得られると思いました。

代わりにこれを行ったとしても(配列ではなくオブジェクト):

{
    SERVER: {
        ip = 10.10.10.1,
        port = 8100
    },
    TYPES: [
        ssh,
        shht
    ]
}

それは機能せず、同じエラーが発生します:

オブジェクトを使用すると、次のようなデータにアクセスできると思います。

var serverIP = myObject.SERVER.ip;

それは確かに私がやりたいことです。

よろしくお願いします。

ジョー

4

3 に答える 3

3

識別子と文字列である値を引用符で囲む必要があります。

これは有効な JSON です。

{
    "SERVER": {
        "ip": "10.10.10.1",
        "port": 8100
    },
    "TYPES": [
        "ssh",
        "shht"
    ]
}

実際に JSON をまったく使用しておらず、Javascript リテラル オブジェクトを作成しようとしているだけの場合は、JSONLint を使用してコードをチェックしないでください。

これは有効な Javascript です:

var myObject = {
    SERVER: {
        ip: '10.10.10.1',
        port: 8100
    },
    TYPES: [
        'ssh',
        'shht'
    ]
};
于 2011-04-17T14:31:03.947 に答える
2

これにより、次が検証されます。


{
    "SERVER": {
        "ip" : "10.10.10.1",
        "port" : 8100 
    },
    "TYPES": [
        "ssh",
        "shht" 
    ]
}

すべての文字列を二重引用符で囲む必要があり、:代わりに必要なオブジェクトであるため=

于 2011-04-17T14:30:36.463 に答える
1

あなたのミキシングjsonオブジェクトとjavascript配列

これはjson形式です

{
    "item":"value",
    "item2":"value"
}

これはJavaScript配列になります

[
    "apple",
    "orange"
]

osこれがあなたが探しているものだと思います

{
    "SERVER": {
        "ip": "10.10.10.1",
        "port": 8100
    },
    "TYPES": [
        "ssh",
        "shht"
    ]
};
于 2011-04-17T14:37:14.437 に答える