所以,我有数据从我的文件,这是目前从服务器。
这是我文件格式的一部分
[{“Table”:“Starters”,“Label”:“Starters”,“Columns”:[{“Field”:“Desc”,“Display”:“Description”,{“Field”:“Name”,“Display”:“Starter Name”,},{“Table”:“Main”,“Label”:“Main Course”,“Columns”:[{“Field”:“Desc”,“Display:“Description”,{“Field”:“Name”,“Display”:“Main Course Name”,}
我需要阅读它并只提取表和标签。
你能帮忙吗??
下面是一小部分:public void onDestroy(){
var path = HttpContext.Current.Server.MapPath(String.Format("{0}", ConfigurationManager.AppSettings["path"]));
using(StreamReader file =
File.OpenText(serverPath)){
string json = reader.ReadToEnd();
AddKeyWord(list, json, "Table, Label")
}
}
private static void
AddKeyWord(List<(string, string)>
list, string infoString, string
keys)
{
int lo;
int hi = 0;
string[] keyValues =
keys.Split(",");
for(int i = 0; i <
keyValues.Length; i++){
while (hi < infoString.Length)
{
lo =
infoString.IndexOf(keyValue[i],
hi);
//break condition if end of
string
if (lo == -1) return;
hi =
infoString.IndexOf(",", lo +
keyValue[i].Length + 3);
string value =
infoString.Substring(lo, hi-lo);
list.Add((keyValue[i],value));
}
}
}
1条答案
按热度按时间jyztefdp1#
您可以使用JSON序列化器并将其Map到POCO,这在c#(Tutorial JSON Deserialization)中非常容易。
另一种可能性是使用
IndexOf(String, StringComparison)
和Substring(Int32, Int32)
的组合。使用IndexOf(String, StringComparison)
搜索 table 和 tag 以获取它们的索引,然后再次使用indexOf()
查找分隔符,在本例中为“,”。现在用Substring(Int32, Int32)
提取子字符串。This answered question应该可以解决你的问题。
这个应该能用但我没有广泛地尝试过。