java - 无法访问 JSON 中的变量

标签 java javascript json

我的 JSONObject 有问题

这是我的代码:

importPackage(Packages.org.apache.commons.io);
importPackage(Packages.java.io);

fisTargetFile = new FileInputStream(new File("C:/moe.json"));
input = IOUtils.toString(fisTargetFile, "UTF-8");

jsonData = input;
myJSONObject = eval('(' + jsonData + ' )');
len = myJSONObject.cells.length;
count = 0;
if (count < len) {
    var name = myJSONObject.cells[count].attrs.text;
    var type = myJSONObject.cells[count].type;
    var photo = myJSONObject.cells[count].attrs.image.xlink:href;
    row["name"] = name;
    row["type"] = type;
// row["photo"]    = photo;
    count++;
    return true;
}
return false;

我的问题出在这一行 var photo = myJSONObject.cells[count].attrs.image.xlink:href;

我无法访问我的图像数据,因为这不是正确的语法“:”我该如何克服它?有没有办法逃避“:”?

编辑: 这是我的 JSON 对象:

{
    "cells": [
    {
        "type": "basic.Platform",
        "size": {
            "width": 60,
            "height": 60
         },
  "custom": {
    "identifier": [
      {
        "name": "Name1",
        "URI": "Value1"
      }
    ],
    "classifier": [
      {
        "name": "Name2",
        "URI": "Value2"
      }
    ],
    "output": [
      {
        "name": "Name3",
        "URI": "Value3"
      }
    ],
    "imported": false,
    "event": [

    ]
  },
  "ref": [

  ],
  "uuid": [
    "dc537ba7-b9dc-476e-9f09-8c1f5211f9bb"
  ],
  "position": {
    "x": 390,
    "y": 230
  },
  "angle": 0,
  "id": "dc537ba7-b9dc-476e-9f09-8c1f5211f9bb",
  "embeds": "",
  "z": 1,
  "description": "",
  "attrs": {
    "text": {
      "font-size": "9",
      "text": "rere",
      "ref-x": "0.5",
      "ref-dy": "20",
      "fill": "#000000",
      "font-family": "Arial",
      "display": "",
      "stroke": "#000000",
      "stroke-width": "0",
      "font-weight": "400"
    },
    "image": {
      "width": 50,
      "height": 50,
      "xlink:href": "data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAACWCAYAAAA\/mr2PAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS5EOsBjwfqm3fvx0eIfsT89"
    }
  }
}

]

我已经 trim 了 xlink:href 数据,因为它太长了。

最佳答案

是的

myJSONObject.cells[count].attrs.image["xlink:href"]

推理:在任何使用点符号分隔对象引用的地方,您也可以使用方括号符号并传入字符串。这是引用不是“有效”标识符的内容(例如名称中间的冒号)的标准方法。

关于java - 无法访问 JSON 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30368666/

相关文章:

当枚举与自定义单元工厂一起使用时,JavaFX 无法设置数据

javascript - 为什么初始化的 JavaScript 对象不包含原型(prototype)对象?

php - MySQL 到 JSON(与 NVD3.js 一起使用)

json - Elasticsearch:批量请求在 Elasticsearch 6.1.1 中抛出错误

java - 在 Hibernate 和 Spring 中初始化枚举

java - 找不到 Tomcat Mapper 类

javascript - 将信息从一个网页发送到另一个

django - 在 django admin 中将 json 文本显示为友好列表

java - 如何从多部分表单数据请求中删除 http 工件?

javascript - 我的 "push array"函数不工作