我得到了一个复杂的JSON字符串,如下所示。
"rectangle":
"{\n \
"minX\": 0.0,\n \
"minY\": 0.0,\n \
"maxX\": 2460.0,\n \
"maxY\": 3008.0\n}",
"graphSpace":
"[
[{\
"rectangle\":
\"{\\n \\\
"minX\\\": 0.0,\\n \\\
"minY\\\": 0.0,\\n \\\
"maxX\\\": 0.0,\\n \\\
"maxY\\\": 0.0\\n}\",\
这还不完整。但这怎么读呢?
您的“JSON字符串”不是字符串。它是json数据(如json文件所示)。
这个json数据的所有值都是“Stringized json”。json数据的第二部分在grapspace
下是双字符串化的。首先让我们了解您有什么,然后我们将它读成Java。
当格式化时,我们有更清楚的内容:
"rectangle":
"{\n
\"minX\": 0.0,\n
\"minY\": 0.0,\n
\"maxX\": 2460.0,\n
\"maxY\": 3008.0\n}",
"graphSpace":
"[[{
\"rectangle\":
\"{\\n
\\\"minX\\\": 0.0,\\n
\\\"minY\\\": 0.0,\\n
\\\"maxX\\\": 0.0,\\n
\\\"maxY\\\": 0.0\\n}\",
\
最后一个逗号和反斜杠是一些JSON的一部分,您没有显示。在您的示例中,graphSpace的json字符串值是不完整的,并且没有结束的双引号。(最后一行代码中的\“只是字符串的一部分,并用反斜杠”转义“。
\是在字符串中写入单个反斜杠\
的方法。\“是在字符串中写入双引号”
的方法。
string s1 = "the following double quote \" is not the end of the string.";
string s2 = "while the double quote after the next period does close the string.";
因此,矩形
保存一个json字符串,该字符串本身可以被解析为js对象。
GraphSpace
还保存一个json字符串,但是当这个json字符串被解析为js对象时,它将保存一个由rectangle
对象组成的数组(其中有一个rectangle对象),而这个rectangle对象在被解析后保存一个json字符串。
我再说一遍。在解析GraphSpace
json之后,这个Rectangle
对象将保存一个json字符串,没有额外的双引号,因此您将拥有一个具有以下内容的javascript对象
myobj.graphSpace =
[[{
rectangle:
"{\n
\"minX\": 0.0,\n
\"minY\": 0.0,\n
\"maxX\": 0.0,\n
\"maxY\": 0.0\n}\"
// and I presume the rest of the missing code
}", // etc. etc.
在代码中的某个地方也可以解析json字符串。所以你会写:(例如使用谷歌GSon)
Gson gson = new Gson();
JsonReader reader = new JsonReader(new FileReader(filename));
Rectangle rect1 = gson.fromJson(reader, RECTANGLE_TYPE); // see link below for further details
GraphSpace graphSpace = gson.fromJson(reader, GRAPHSPACE_TYPE);
// at this stage you have parsed in all the json file.
// but you may wish to continue and parse the stringified value of the graphSpace.rectangle so:
string rectString = graphSpace[0][0].rectangle;
Rectangle graphRect = gson.fromJson(rectString, RECTANGLE_TYPE);
// or use a `for` loop to loop through the rectangle strings in graphSpace...
在Java中,有一种内置的方式来读取JSON,并且有许多很好的库可以这样做。
见
我想把一些JSON解析成一个SQL的INSERT,但是,由于不同级别的数据片段不同,很难得到所有的数据。 以下是JSON文件: 到目前为止,这就是我所用的Python,它可以工作: 结果是: 这有点对,但我需要插入看起来像: 我看到了一些例子:例1 但我一直没能让它为我工作。 @斯科尔05 我想你的意思是:但它导致了一个错误:AttributeError:'dict'对象没有属性'iteritem
我有一个非常复杂的字符串,如下所示, 这里所有的JSON数据都在括号“[]”中,括号之间用“{…}”分隔支撑。在这里,我想要一个从所有花括号的消息,故事和属性。尝试了两件事一是二把所有的东西都放在一个JSON对象中,也尝试了一次无用的尝试来匹配regex“message:”但即使这样也没用。 从所有大括号中查找消息、故事和属性的方法是什么。
问题内容: 我正在将jQuery AJAX POST发布到Servlet,并且数据采用JSON字符串的形式。它已成功发布,但在Servlet端,我需要将这些键- 值对读入Session Object并将其存储。我尝试使用JSONObject类,但无法获取它。 这是代码段 在Servlet方面 问题答案: 您实际上并没有解析json。
问题内容: 我有一个有效的Json格式的字符串,它看起来像这样: 我想读取不同的字段,例如所有fa_titles,我使用$ obj = json_decode($ str,true); 将此转换为Json,然后回显sizeof($ obj [‘result’]); 告诉我它有5个结果对象,但是现在如何访问fa_title或en_title字段? 问题答案: 在JSON中,数组由方括号(和)指定,而
我正在以JSON字符串的形式从数据库中获取数据: 如何从给定的JSON字符串中提取公司名称?