JSONLint上的JSON格式失败

问题描述

| 我正在编写一些函数,以构造应该是格式正确的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,shht
    ]
}
它不起作用,并且出现相同的错误: 我假设有了该对象,我将能够像这样访问一些数据:
var serverIP = myObject.SERVER.ip;
那当然是我想要做的。 提前谢谢了, 乔     

解决方法

您与javascript数组混合json对象 这是json格式
{
    \"item\":\"value\",\"item2\":\"value\"
}
这将是一个JavaScript数组
[
    \"apple\",\"orange\"
]
os,我认为这就是您要寻找的
{
    \"SERVER\": {
        \"ip\": \"10.10.10.1\",\"port\": 8100
    },\"TYPES\": [
        \"ssh\",\"shht\"
    ]
};
    ,您必须在标识符和字符串值之间使用引号: 这是有效的JSON:
{
    \"SERVER\": {
        \"ip\": \"10.10.10.1\",\"shht\"
    ]
}
如果您实际上根本不使用JSON,而只是尝试创建Javascript文字对象,则不应使用JSONLint来检查代码。 这是有效的Javascript:
var myObject = {
    SERVER: {
        ip: \'10.10.10.1\',port: 8100
    },TYPES: [
        \'ssh\',\'shht\'
    ]
};
    ,这验证:
{
    \"SERVER\": {
        \"ip\" : \"10.10.10.1\",\"port\" : 8100 
    },\"shht\" 
    ]
}
您需要在每个字符串周围加上双引号,并且由于它是一个对象,因此需要
:
而不是
=
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...