我有一个看起来像这样的字符串:
“ es_apiResponse”:{“ es_evaluationTruncation”:false,“ es_queryE valuationTime“:1,” es_totalResults“:30676,” es_totalResultsTyp e“:”估计“,” es_numberOfAvailableResults“:500,” es_numberO fEstimatedResults“:30676,” es_query“:{” role“:” request“,” sear chTerms“:” yonic“}} *
表示它内部有一个或多个对象。这是我到目前为止提出的内容,但是我迷失了代码
检查字符串中的每个角色 如果char是“,”则在当前节点中添加新行 如果char是一个打开的“ {”->用previos单词给定的名称打开一个新的子节点(如果构建了字符串生成器以生成中间字符串,则可以使用中间的字符串来获得该节点的名称,而无需使用逗号) 如果char为“}”->关闭当前节点。
注意1->我应该跟踪打开的节点吗?
wm withdraw .
我的代码中还有另一个错误->我不知道如何为来自像这样的字符串的变量分配名称:
TreeNode StringToTree(string convertME, string treeNodeName)
{
TreeNode treeNode = new TreeNode();
string NodeName = treeNodeName;
string converted = convertME;
string tempname = null;
int i = 0;
char c;
StringBuilder sb = new StringBuilder();
int len = convertME.Length;
convertME.Replace(',','\n');
for (i = 0; i == len; i++)
{
if (converted.ElementAt(i) == 44)
{
{tempname}.Nodes.Add(sb.ToString());
sb.Length = 0;
}
if (converted.ElementAt(i) == 123)
{
tempname = sb.ToString().Replace("\"", "");
{NodeName}.Nodes.Add(tempname);
sb.Length = 0;
}
if (converted.ElementAt(i) == 125)
{
{tempname}.Nodes.Add(sb.ToString());
sb.Length = 0;
}
sb.Append(convertME.ElementAt(i));
}
return {tempname};