我收到一个格式化的字符串,但我无法更改来源;它看起来像这样:
{
"value": 4.12
}
我必须将其解析为双精度才能显示数字。
在使用regex
之前,我应该使用double.TryParse()
清除它,但我不知道如何格式化正则表达式...
答案 0 :(得分:2)
如果你只错过new Foundation.Tooltip($(".has-tip"), {
allowHtml: true
});
$('.has-tip').foundation();
周围的双引号,那就是有效的JSON。您可以使用几乎任何json库来解析它。
答案 1 :(得分:2)
使用LINQ to JSON,您可以在一行中检索该值:
var json = @"{
""value"" : 4.12
}";
var value = (double)JObject.Parse(json)["value"];
演示:https://dotnetfiddle.net/e0viPY
<强> P.S。强>
由于Json.NET接受更宽松的语法,因此即使使用原始问题版本(即不带引号的密钥),此代码也能正常工作:
var json = "{ value : 4.12 }";
var value = (double)JObject.Parse(json)["value"];
答案 2 :(得分:0)
您可以使用以下正则表达式 -
[0-9] +([0-9] [0-9])?
答案 3 :(得分:0)
快速而肮脏的正则表达式解决方案:
string source = @"{
""value"": 4.12
}";
double result = double.Parse(Regex.Match(source, @"-?[0-9]*\.?[0-9]+").Value,
CultureInfo.InvariantCulture);
然而,更好的实现是将其反序列化为JSON