如何从 JSON 类型字符串中提取变量(c#)

如何从 JSON 文件中的字符串中提取浮点变量?

这是可能的字符串的示例(字符在逗号后停止):

            "x": "1.234567",

该字符串在双引号前有 12 个空格,我需要提取的数字是1.234567

点后的小数可以超过6位。

双引号也在字符串中,而最后的逗号并不总是存在


开满天机
浏览 172回答 4
4回答

ABOUTYOU

如果您的字符串采用该格式,您可以在双引号上拆分并从结果数组中提取数字:    var str = "      \"x\":\"123.456\""; //example     var number = Convert.ToDouble(str.Split('"')[3]);

一只斗牛犬

我认为这段代码有帮助:Convert.ToDouble("1.234567")或者将您的字符串变量放入其中。

猛跑小猪

如果您不想使用正则表达式,并且字符串的格式始终采用该形式,您可以执行以下操作:public string myString= "\"x\": \"1.234568\"";public string[] subStrings;void Start(){    subStrings = myString.Split('\"');    float myFloat = Convert.ToSingle(subStrings[3]);}该方法myString.Split(char[])返回一个字符串数组,在找到作为分隔符传递的字符的任何地方分割字符串。如果您的格式总是这样完成,则 中的第四个元素subString[]就是您的数字。

摇曳的蔷薇

一个简单的正则表达式可以从字符串中提取数字:    var str = "      \"x\": \"1.234567\"";  //example    var regex = new Regex("[\\d.]+");    var match = regex.Match(str).Groups[0].Value;    var number = Convert.ToDouble(match);说明:正则表达式将第一组数字和点匹配在一起,并将其放入 Group[0] 中。如果您可能的字符串可以在其他任何地方包含数字或点,您将需要修改正则表达式以精确定位您想要的数字。但这满足你问题中的例子。
打开App,查看更多内容
随时随地看视频慕课网APP