-5

JSON変数を作成し、それをJSONに解析しました。しかし、私は値を読み取ることができません。私はすべてを試しました。しかし、それは機能していません。これが私のJavaScriptコードです。

var graph='{"graphSpace":[{"rectangle":{"minX":0.0,"minY":0.0,"maxX":0.0,"maxY":0.0},"contents":"","rights":[],"lefts":[],"tops":[],"downs":[],"annotation":{"id":255,"type":"line"}],[{"rectangle":{"minX":174.0,"minY":87.0,"maxX":989.0,"maxY": 136.0},"contents":"Carter Brothers Fire u0026 Life Safety","rights":[{"id":59}],"lefts":[],"tops":[{"id":255}],"downs":[{"id":14},{"id":16},{"id":19},{"id":21},{"id":28},{"id":31},{"id":33},{"id":35},{"id":42},{"id":45},{"id":47},{"id":49},{"id":52},{"id":183},{"id":169},{"id":199},{"id":190},{"id":201},{"id":192},{"id":208},{"id":215},{"id":230},{"id":233},{"id":240},{"id":243},{"id":246}],"annotation":{"id":7,"type":"line"}},{"rectangle":{"minX":2073.0,"minY":92.0,"maxX":2327.0,"maxY":150.0},"contents":"Invoice","rights":[],"lefts":[{"id":7}],"tops":[{"id":7},{"id":255}],"downs":[{"id":67},{"id":70},{"id":72},{"id":74},{"id":76},{"id":100},{"id":102},{"id":105},{"id":108},{"id":111},{"id":114},{"id":135},{"id":160},{"id":151},{"id":162},{"id":153},{"id":264},{"id":280},{"id":302}],"annotation":{"id":59,"type":"line"}}]}';

便宜上、データを読み取り可能な形式で配置します。

    {
   "graphSpace":
    [
        {"rectangle":
            "{  "minX": 0.0,  "minY": 0.0,  "maxX": 0.0,  "maxY":0.0}",
        "contents":"",
        "rights":"[]",
        "lefts":"[]",
        "tops":"[]",
        "downs":"[]",
        "annotation":
            "{  "id": 255,  "type": "line"}"
    ],
    [
        {"rectangle":
            "{  "minX": 174.0,  "minY": 87.0,  "maxX": 989.0,  "maxY": 136.0}",
        "contents":"JSON u0026 JAVASCRIPT",
        "rights":"
            [{"id":59}]",
        "lefts":"[]",
        "tops":"[{"id":255}]",
        "downs":"
            [{"id":14},]",
        "annotation":
            "{  "id": 7,  "type": "line"}"
        },
        {"rectangle":
            "{  "minX": 2073.0,  "minY": 92.0,  "maxX": 2327.0, "maxY":150.0}",
        "contents":"JSON EXample",
        "rights":"[]",
        "lefts":
            "[{"id":7}]",
        "tops":
            "[{"id":7},{"id":255}]",
        "downs":
            "[{"id":67},{"id":70},{"id":72},]",
        "annotation":
            "{"id": 59,  "type": "line"}"
        }
    ]
}

ここで、解析されたデータを格納する変数を作成しています。それから私はそれが保存されているかどうかをチェックしています。だから私は最初の値を読んでそれを警告しています。

var graphSpace=JSON.parse(graph);
var minx = graphSpace[0].rectangle.minX;
alert(minx);

しかし、このJSPページを開くと、そのアラートを表示できません。ここでの間違いは何ですか?

更新:申し訳ありませんが、コピー中に最初のキーを追加するのを忘れました。これをチェックしてください

4

5 に答える 5

1

これは無効な形式です。配列をラップしている中括弧を削除します。

 var graph='[{"rectangle":{"minX":0.0,"minY":0.0,"maxX":0.0,"maxY":0.0},"contents":"","rights":[],"lefts":[],"tops":[],"downs":[],"annotation":{"id":255,"type":"line"}],[{"rectangle":{"minX":174.0,"minY":87.0,"maxX":989.0,"maxY": 136.0},"contents":"Carter Brothers Fire u0026 Life Safety","rights":[{"id":59}],"lefts":[],"tops":[{"id":255}],"downs":[{"id":14},{"id":16},{"id":19},{"id":21},{"id":28},{"id":31},{"id":33},{"id":35},{"id":42},{"id":45},{"id":47},{"id":49},{"id":52},{"id":183},{"id":169},{"id":199},{"id":190},{"id":201},{"id":192},{"id":208},{"id":215},{"id":230},{"id":233},{"id":240},{"id":243},{"id":246}],"annotation":{"id":7,"type":"line"}},{"rectangle":{"minX":2073.0,"minY":92.0,"maxX":2327.0,"maxY":150.0},"contents":"Invoice","rights":[],"lefts":[{"id":7}],"tops":[{"id":7},{"id":255}],"downs":[{"id":67},{"id":70},{"id":72},{"id":74},{"id":76},{"id":100},{"id":102},{"id":105},{"id":108},{"id":111},{"id":114},{"id":135},{"id":160},{"id":151},{"id":162},{"id":153},{"id":264},{"id":280},{"id":302}],"annotation":{"id":59,"type":"line"}}]';

その後、すべてが正しくなります。

于 2013-03-20T07:14:05.133 に答える
1

JSONが有効であると確信していますか?

このサイトを使用して確認してください:http: //jsonlint.com/

JSONに問題があると言っています。

于 2013-03-20T07:15:23.597 に答える
0

この形式は無効です。最も外側の{}は不要であり、次のように埋め込みオブジェクトの前後の引用符を削除します。

"rectangle": "{  "minX": 174.0,  "minY": 87.0,  "maxX": 989.0,  "maxY": 136.0}",

その代わり:

"rectangle": {  "minX": 174.0,  "minY": 87.0,  "maxX": 989.0,  "maxY": 136.0},
于 2013-03-20T07:14:21.693 に答える
0

JSONが無効です。JSONのオブジェクトのプロパティは、name:valueのペアとしてリストする必要がありますが、最も外側のオブジェクトに対してはこれを行っていません。これを配列にしたいようですので、一番外側の中かっこを角かっこに変更することをお勧めします。

于 2013-03-20T07:15:25.093 に答える
0

jsonlint.comを使用してjson.comを作成します。修正後はこんな感じになります。キーのLEVEL1とLEVELに適切な名前を付けます

{
    "LEVEL 1": [
        {
            "rectangle": {
                "minX": 0,
                "minY": 0,
                "maxX": 0,
                "maxY": 0
            },
            "contents": "",
            "rights": "[]",
            "lefts": "[]",
            "tops": "[]",
            "downs": "[]",
            "annotation": {
                "id": 255,
                "type": "line"
            }
        }
    ],
    "LEVEL 11": [
        {
            "rectangle": {
                "minX": 174,
                "minY": 87,
                "maxX": 989,
                "maxY": 136
            },
            "contents": "JSON u0026 JAVASCRIPT",
            "rights": {
                "id": 59
            },
            "lefts": "[]",
            "tops": {
                "id": 255
            },
            "downs": {
                "id": 14
            },
            "annotation": {
                "id": 7,
                "type": "line"
            }
        },
        {
            "rectangle": {
                "minX": 2073,
                "minY": 92,
                "maxX": 2327,
                "maxY": 150
            },
            "contents": "JSON EXample",
            "rights": "[]",
            "lefts": {
                "id": 7
            },
            "tops": {
                "id": 7
            },
            "you2": {
                "id": 255
            },
            "downs": [
                {
                    "id": 67
                },
                {
                    "id": 70
                },
                {
                    "id": 72
                }
            ],
            "annotation": {
                "id": 59,
                "type": "line"
            }
        }
    ]
}
于 2013-03-20T07:20:56.977 に答える