首页 > 解决方案 > 时间:2019-01-10 标签:c#convert a string into JSON like TreeView

问题描述

我有一个看起来像这样的字符串:

"es_apiResponse":{"es_evaluationTruncation":false,"es_queryEvaluationTime":1,"es_totalResults":30676,"es_totalResultsTyp e":"estimated","es_numberOfAvailableResults":500,"es_numberO fEstimatedResults":30676,"es_query": {"role":"request","sear chTerms":"yonic"}}*

这意味着它里面有一个或多个对象。这是我到目前为止想出的,但我迷失在代码中

如果 char 是“,”,则检查字符串中的每个字符,而不是在当前节点中添加新行,如果 char 是打开的“{”-> 使用前一个单词给出的名称打开一个新的子节点(如果构建了字符串构建器生成一个中间字符串,如果char是“}”,则可以使用它来获取节点的名称(不包括逗号)->关闭当前节点。

注 1 --> 我应该跟踪打开的节点吗?

    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};

我的代码中还有另一个错误——>我不知道如何将名称分配给来自字符串的变量,如下所示:

                tempname = sb.ToString().Replace("\"", "");
                {NodeName}.Nodes.Add(tempname);

标签: c#treenode

解决方案


推荐阅读