Ошибка формата JSON в JSONLint - PullRequest
       29

Ошибка формата JSON в JSONLint

2 голосов
/ 17 апреля 2011

Я пишу некоторые функции, которые создают то, что должно быть правильно отформатированной строкой 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;

Это, безусловно, то, что я хотел бы сделать.

Большое спасибо заранее,

Джо

Ответы [ 3 ]

3 голосов
/ 17 апреля 2011

Вы должны использовать кавычки вокруг идентификаторов и значений, которые являются строками:

Это действительно 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'
    ]
};
2 голосов
/ 17 апреля 2011

Это подтверждает:


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

вам нужны двойные кавычки вокруг каждой строки, и, поскольку это объект, вам нужно : вместо =

1 голос
/ 17 апреля 2011

ваш смешивающий объект json с массивами javascript

это формат json

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

и это будет массив JavaScript

[
    "apple",
    "orange"
]

os Я думаю, что эточто вы ищете

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