我想过滤掉字符串数字的所有部分,并将它们全部添加到字符串列表中。
所以来自:["2931741444","2931789497","2931745064","2931763896","2931728251","2931786984","2931799607","293177823","2931795568","293171105"]
到
list.Add(2931741444);
list.Add(2931789497);
list.Add(2931745064);
等...
我遍历字符串,查看数字开始的位置并将它们添加到新字符串中,但我现在已经卡住了。这是我的尝试:
static void Main(string [] args) {
using (WebClient wc = new WebClient())
{
var json = wc.DownloadString("http://api.hivemc.com/v1/game/SG/data");
Console.WriteLine(json);
Console.WriteLine("Was called first.");
int counter = 2;
string newString = "";
string s = json.ToString();
// loop through the string
for (int i=0; i < s.Length; i++)
{
if (s[i].ToString() == "\"")
{
counter++;
}
if (counter.isEven)
{
newString = newString + i;
}
}
}
Console.ReadKey();
}
有更简单的方法吗?我也无法看到如何使用此代码执行其他字符串。
答案 0 :(得分:1)
我认为你要做的是deserialization
。您可以使用Json.NET
var list = new List<long>();
using (var wc = new WebClient())
{
var json = wc.DownloadString("http://api.hivemc.com/v1/game/SG/data");
list = JsonConvert.DeserializeObject<List<long>>(json);
}
答案 1 :(得分:1)
var stringValues = JsonConvert.DeserializeObject<string[]>(json);
int[] values = Array.ConvertAll(stringValues, s => int.Parse(s));
(随意交换任何其他json序列化程序库;示例是使用Json.NET)