将 table 格式的大量字符串转换为 table
Converting a massive string in a table format to a table
假设网页上只有这个:
<pre style="word-wrap: break-word; white-space: pre-wrap;">
"[{"Asset":1112, "Name":"Test"}, {"Asset":223, "Name":"Drill"}]"
</pre>
如何将该字符串转换为我可以访问和提取的 table?即使我找到了,我仍然不知道如何将字符串转换为我访问的 table。
我知道 document.getElementsByTagName("PRE");会 return 巨大的字符串,但在那之后我有点迷路了。
我搜索了数百页,试图找到一个很好的例子来说明我需要做什么。这是一个这样的例子:
http://www.roblox.com/catalog/json?browse.aspx?Subcategory=2&Keyword=&CurrencyType=0&pxMin=0&pxMax=0&SortType=2&SortAggregation=0&SortCurrency=0&LegendExpanded=true&Category=2&PageNumber=1
这是一个经典的 JSON 解析问题。您链接的页面实际上只是文本 - 您看到的 pre
格式只是浏览器的默认样式。如果您查看页面源代码,您将能够看到该页面是纯文本 纯文本 JSON.
所以您需要做的是使用 XMLHttpRequest
将该页面提取到您的应用程序中,然后一旦您获得字符串,您就可以使用内置的 JSON 实用程序解析它.
这里有一个 现场演示 向您展示如何将原始 JSON 字符串数据转换为可用的数据结构,一旦您的应用程序中有了它:
var str = '[{"Asset":1112, "Name":"Test"}, {"Asset":223, "Name":"Drill"}]';
var obj = JSON.parse(str);
var output = "Asset 1: " + obj[0].Asset + ", Name: " + obj[0].Name + "<br />";
output += "Asset 2: " + obj[1].Asset + ", Name: " + obj[1].Name;
document.getElementById("output").innerHTML = output;
<div id="output"></div>
JSFiddle 版本:https://jsfiddle.net/q0wdz4vz/1/
请注意,外部 JSON 对象是一个数组。对于第一行,我使用 obj[0]
检索数组中的第一个对象,然后使用 .Asset
获取其资产编号。 .Name
和第二个对象也是如此。
假设网页上只有这个:
<pre style="word-wrap: break-word; white-space: pre-wrap;">
"[{"Asset":1112, "Name":"Test"}, {"Asset":223, "Name":"Drill"}]"
</pre>
如何将该字符串转换为我可以访问和提取的 table?即使我找到了,我仍然不知道如何将字符串转换为我访问的 table。
我知道 document.getElementsByTagName("PRE");会 return 巨大的字符串,但在那之后我有点迷路了。
我搜索了数百页,试图找到一个很好的例子来说明我需要做什么。这是一个这样的例子: http://www.roblox.com/catalog/json?browse.aspx?Subcategory=2&Keyword=&CurrencyType=0&pxMin=0&pxMax=0&SortType=2&SortAggregation=0&SortCurrency=0&LegendExpanded=true&Category=2&PageNumber=1
这是一个经典的 JSON 解析问题。您链接的页面实际上只是文本 - 您看到的 pre
格式只是浏览器的默认样式。如果您查看页面源代码,您将能够看到该页面是纯文本 纯文本 JSON.
所以您需要做的是使用 XMLHttpRequest
将该页面提取到您的应用程序中,然后一旦您获得字符串,您就可以使用内置的 JSON 实用程序解析它.
这里有一个 现场演示 向您展示如何将原始 JSON 字符串数据转换为可用的数据结构,一旦您的应用程序中有了它:
var str = '[{"Asset":1112, "Name":"Test"}, {"Asset":223, "Name":"Drill"}]';
var obj = JSON.parse(str);
var output = "Asset 1: " + obj[0].Asset + ", Name: " + obj[0].Name + "<br />";
output += "Asset 2: " + obj[1].Asset + ", Name: " + obj[1].Name;
document.getElementById("output").innerHTML = output;
<div id="output"></div>
JSFiddle 版本:https://jsfiddle.net/q0wdz4vz/1/
请注意,外部 JSON 对象是一个数组。对于第一行,我使用 obj[0]
检索数组中的第一个对象,然后使用 .Asset
获取其资产编号。 .Name
和第二个对象也是如此。