【发布时间】:2016-04-24 08:06:04
【问题描述】:
在一串 HTML 中,我需要从 Javascript 对象中解析出值。 javascript 始终如下所示,因此我需要解析,因此我需要解析值“Ariat”和“Mens>Footwear>Cowboy Boots>Square Toe”,例如在双引号之间。我认为正则表达式可能是要走的路,但我以前从未使用过它,所以我希望得到一些关于正确方法的指导?也许是一个正则表达式的例子,还是我不应该使用正则表达式并走向不同的方向?
<script type="text/javascript">
dataLayer=[{
"conversionType": "Viewed Product",
"conversionAttributes": [
{
"brand_name": "Ariat",
"id": 2464833,
"category" : "Mens>Footwear>Cowboy Boots>Square Toe",
"image": "http://demandware.edgesuite.net/aayu_prd/on/demandware.static/-/Sites-co-master-catalog/default/dwec67444c/images/productimages/237083_90751-mens-rambler-boot-wicker_large.jpg",
"name": "Mens Rambler Square Toe Boot",
"msrp": "159.95",
"price": "149.95",
"sku": "ARIAT-MRamblerSqToe",
"parentSku" :"ARIAT-MRamblerSqToe",
"vendor": "Ariat"
}
]
}];
</script>
【问题讨论】:
-
嗨达林,如果我理解正确,你有一个 HTML 字符串,你想从中提取一个 JSON 编码的数据集?我问的原因是这听起来很简单,只需找到
script标签,将所有内容都取出,然后通过 JSON 解码器运行它。是这样,还是问题更复杂? -
使用 JSON 解析器,不要尝试编写原始正则表达式。
-
另外,您尝试用什么语言解析 JSON? C# 还是 JavaScript?
-
一般你不想从脚本标签加载json数据。最好使用某种 http 请求。如果它是 http 请求的结果,它可以更容易地用 JavaScript 解析。并且您的数据被分配给变量 dataLayer,因此您无需解析任何其他脚本中的任何内容,您可以通过 dataLayer 变量访问它。
标签: javascript c# regex