为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
开满天机 2023-07-22 18:18:58
如何从 JSON 文件中的字符串中提取浮点变量?这是可能的字符串的示例(字符在逗号后停止):            "x": "1.234567",该字符串在双引号前有 12 个空格,我需要提取的数字是1.234567点后的小数可以超过6位。双引号也在字符串中,而最后的逗号并不总是存在
查看完整描述

4 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

如果您的字符串采用该格式,您可以在双引号上拆分并从结果数组中提取数字:

    var str = "      \"x\":\"123.456\""; //example
    var number = Convert.ToDouble(str.Split('"')[3]);


查看完整回答
反对 回复 2023-07-22
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

我认为这段代码有帮助:

Convert.ToDouble("1.234567")

或者将您的字符串变量放入其中。


查看完整回答
反对 回复 2023-07-22
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

如果您不想使用正则表达式,并且字符串的格式始终采用该形式,您可以执行以下操作:


public string myString= "\"x\": \"1.234568\"";

public string[] subStrings;


void Start()

{


    subStrings = myString.Split('\"');

    float myFloat = Convert.ToSingle(subStrings[3]);


}

该方法myString.Split(char[])返回一个字符串数组,在找到作为分隔符传递的字符的任何地方分割字符串。如果您的格式总是这样完成,则 中的第四个元素subString[]就是您的数字。


查看完整回答
反对 回复 2023-07-22
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

一个简单的正则表达式可以从字符串中提取数字:


    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] 中。如果您可能的字符串可以在其他任何地方包含数字或点,您将需要修改正则表达式以精确定位您想要的数字。但这满足你问题中的例子。


查看完整回答
反对 回复 2023-07-22
  • 4 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信