获取2个字符之间的字符串C#
我有一根绳子,看起来像获取2个字符之间的字符串C#,c#,string,C#,String,我有一根绳子,看起来像 {"BTC":{"USD":7358.8},"ETH":{"USD":402.78},"LTC":{"USD":125.37},"DASH":{"USD":335.73},"XMR":{"USD":187.2},"NXT":{"USD":0.1272},"ZEC":{"USD":204.82},"XRP":{"USD":0.5296},"WAVES":{"USD":4},"BCH":{"USD":705.74},"EOS":{"USD":5.89},"XLM":{"USD
{"BTC":{"USD":7358.8},"ETH":{"USD":402.78},"LTC":{"USD":125.37},"DASH":{"USD":335.73},"XMR":{"USD":187.2},"NXT":{"USD":0.1272},"ZEC":{"USD":204.82},"XRP":{"USD":0.5296},"WAVES":{"USD":4},"BCH":{"USD":705.74},"EOS":{"USD":5.89},"XLM":{"USD":0.229},"ADA":{"USD":0.1601},"NEO":{"USD":52.03},"IOT":{"USD":1.07}}
我想得到的是名称(例如:BTC、ETH等),我想在“:”之前和“””之后得到文本,并删除不必要的内容,但我真的不知道这是否是一个好方法或如何做到这一点。
任何帮助都将不胜感激。
谢谢!字符串似乎是JSON,为什么不按原样解析呢
public class ExchangeRate
{
public decimal USD { get; set; }
}
static class Program
{
static void Main(string[] args)
{
string s = "{\"BTC\":{\"USD\":7358.8},\"ETH\":{\"USD\":402.78},\"LTC\":{\"USD\":125.37},\"DASH\":{\"USD\":335.73},\"XMR\":{\"USD\":187.2},\"NXT\":{\"USD\":0.1272},\"ZEC\":{\"USD\":204.82},\"XRP\":{\"USD\":0.5296},\"WAVES\":{\"USD\":4},\"BCH\":{\"USD\":705.74},\"EOS\":{\"USD\":5.89},\"XLM\":{\"USD\":0.229},\"ADA\":{\"USD\":0.1601},\"NEO\":{\"USD\":52.03},\"IOT\":{\"USD\":1.07}}";
var er = JsonConvert.DeserializeObject<Dictionary<string, ExchangeRate>>(s);
Console.ReadKey();
}
}
公共类交换率
{
公共十进制USD{get;set;}
}
静态类程序
{
静态void Main(字符串[]参数)
{
10.7月7日,,““美元”兑:402.78},,“LTC\”,,“LTC\”:,,“LTC\”:{“美元”:125.37},倒倒倒倒倒倒“BTC\””,,,“BTC\””,,,“BTC\”,,,“BTC\”:,,,,,,,,,,,,,,,,,,“BTC\”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::,,,,,,,,,,,,,,:{“USD\”:705.74},“EOS\”:{“USD\”:5.89},“XLM\”:{“USD\”:0.229},“ADA\”:{“USD\”:0.1601},“NEO\”:{“USD\”:52.03},\'IOT\':{\'USD\':1.07};
var er=JsonConvert.DeserializeObject;
Console.ReadKey();
}
}
如果您希望使用多种货币,您可以使用:
var er = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, decimal>>>(s);
var er=JsonConvert.DeserializeObject;
相关:字符串似乎是JSON,那么为什么不按原样解析它呢
public class ExchangeRate
{
public decimal USD { get; set; }
}
static class Program
{
static void Main(string[] args)
{
string s = "{\"BTC\":{\"USD\":7358.8},\"ETH\":{\"USD\":402.78},\"LTC\":{\"USD\":125.37},\"DASH\":{\"USD\":335.73},\"XMR\":{\"USD\":187.2},\"NXT\":{\"USD\":0.1272},\"ZEC\":{\"USD\":204.82},\"XRP\":{\"USD\":0.5296},\"WAVES\":{\"USD\":4},\"BCH\":{\"USD\":705.74},\"EOS\":{\"USD\":5.89},\"XLM\":{\"USD\":0.229},\"ADA\":{\"USD\":0.1601},\"NEO\":{\"USD\":52.03},\"IOT\":{\"USD\":1.07}}";
var er = JsonConvert.DeserializeObject<Dictionary<string, ExchangeRate>>(s);
Console.ReadKey();
}
}
公共类交换率
{
公共十进制USD{get;set;}
}
静态类程序
{
静态void Main(字符串[]参数)
{
10.7月7日,,““美元”兑:402.78},,“LTC\”,,“LTC\”:,,“LTC\”:{“美元”:125.37},倒倒倒倒倒倒“BTC\””,,,“BTC\””,,,“BTC\”,,,“BTC\”:,,,,,,,,,,,,,,,,,,“BTC\”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::,,,,,,,,,,,,,,:{“USD\”:705.74},“EOS\”:{“USD\”:5.89},“XLM\”:{“USD\”:0.229},“ADA\”:{“USD\”:0.1601},“NEO\”:{“USD\”:52.03},\'IOT\':{\'USD\':1.07};
var er=JsonConvert.DeserializeObject;
Console.ReadKey();
}
}
如果您希望使用多种货币,您可以使用:
var er = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, decimal>>>(s);
var er=JsonConvert.DeserializeObject;
相关:我相信您正在尝试使用一些
加密货币
exchange的ticker API来创建一个可能的桌面通知应用程序。几个月前我创建了一个,下面是我所做的:
json2csharp.com
website将JSON
转换为C
类。命名为JsonClass
C
项目中导入了Newtonsoft.Json
包JsonTextReader reader = new JsonTextReader(new StringReader(JsonString));
if (reader.Read())
{
JsonSerializer serializer = new JsonSerializer();
jsonClassObject = serializer.Deserialize<jsonClass>(reader);
}
JsonTextReader reader=newjsontextreader(newstringreader(JsonString));
if(reader.Read())
{
JsonSerializer serializer=新的JsonSerializer();
jsonClassObject=serializer.Deserialize(读取器);
}
我相信您正在尝试使用一些
加密货币
exchange的ticker API创建一个桌面通知应用程序。几个月前我创建了一个应用程序,下面是我所做的:
json2csharp.com
website将JSON
转换为C
类。命名为JsonClass
C
项目中导入了Newtonsoft.Json
包JsonTextReader reader = new JsonTextReader(new StringReader(JsonString));
if (reader.Read())
{
JsonSerializer serializer = new JsonSerializer();
jsonClassObject = serializer.Deserialize<jsonClass>(reader);
}
JsonTextReader reader=newjsontextreader(newstringreader(JsonString));
if(reader.Read())
{
JsonSerializer serializer=新的JsonSerializer();
jsonClassObject=serializer.Deserialize(读取器);
}
//Gives an List<string> that is a collection of all the coin names
List<string> coins = JsonConvert.DeserializeObject<Dictionary<string, object>>(someJson)
.Select(x => x.Key)
.ToList();
拨弄你的评论:
我想得到的是姓名(例如:BTC、ETH等)
听起来您只需要JSON的键
记住这一点,你甚至不需要关心JSON是什么对象,只需要它是某个对象的字典。我们使用一点LINQ来选择所有键和中提琴:
//Gives an List<string> that is a collection of all the coin names
List<string> coins = JsonConvert.DeserializeObject<Dictionary<string, object>>(someJson)
.Select(x => x.Key)
.ToList();
Fiddle这是JSON,只需使用JSON.NET反序列化为一个对象这是JSON,只需使用JSON.NET反序列化为一个对象是的,它是JSON,但它将包含约100个这样的条目,我必须手动编写您拥有的字符串,我认为这不是很有效。但非常感谢!@weaverbeaver这不是它的工作方式,w这是您的JSON来源?底线是您的JSON完全是一个
字典
,因此请使用Patrick所说的JsonConvert.DeserializeObject
方法,并传递任何JSON字符串。如果您的JSON与您的示例不一样,那么您需要提供一个已解决的JSON,非常感谢,很抱歉这个新手问题。是的,它是JSON,但它将包含大约100个这样的条目,我必须手动编写您的字符串,我认为这不是很有效。但非常感谢!@weaverbeaver这不是它的工作方式,您的JSON来自哪里?底线是您的JSON正是一个字典
,所以使用jsoninvert.DeserializeObject
方法,如Patrick所说,并传递任何JSON字符串。如果您的JSON与您的示例不一样,那么您需要提供一个已解决的JSON,非常感谢,很抱歉这个新手问题。JsonConvert
更易于使用。谢谢!我也会尝试。JsonConvert
更易于使用。谢谢!我也会尝试。是的,这就是为什么在我想要的时候,这就是我做的,非常感谢!是的,这就是我想要的,这就是我做的,非常感谢!