我有一个json文件,其中包含代表某些形状的json数组,
[{"Cordinates": [272.0,81.0,200.0,100.0],
"Type":"Ellipse2D",
"Color":java.awt.Color[r=255,g=0,b=0]},
{"Cordinates":[227.0,272.0,200.0,100.0],
"Type":"Rectangle2D",
"Color":java.awt.Color[r=255,g=0,b=0]}
]
错误
Unexpected character (j) at position 67.
这是我的代码来解析这个
public List<ShapeItem> read() {
try {
Object obj = parser.parse(new FileReader(filePath));
JSONArray ja = (JSONArray)obj;
for (int j = 0; j < ja.size(); j++){
JSONObject si = (JSONObject) ja.get(j);
String type = (String) si.get("Type");
JSONArray cordinates = (JSONArray) si.get("Cordinates");
Float x, y, width, height;
x = (Float) cordinates.get(0);
y = (Float) cordinates.get(1);
width = (Float) cordinates.get(2);
height = (Float) cordinates.get(3);
if (type.equals("Ellipse2D")){
s = new Ellipse2D.Float(x, y, width, height);
}
else if (type.equals("Rectangle2D")){
s = new Rectangle2D.Float(x, y, width, height);
}
c = (Color) si.get("Color");
shapeItem = new ShapeItem(s, c);
shapes.add(shapeItem);
}
}
return shapes;
}
我想阅读这个文件并创建这些形状并返回形状数组,但我有任何帮助错误吗?
答案 0 :(得分:6)
描述单个值的JSON对象属性应该是键值对,其中值是有效的JSON属性值类型之一,如字符串或数字。
但是,您的Color属性没有可以转换为其中任何一个的值。
具体做法是:
"Color":java.awt.Color[r=255,g=0,b=0]
绝不是有效的JSON。
请尝试指定您的颜色:
"Color":"#ffff0000"