2

我希望创建一个类似于http://json.parser.online.fr/的树视图样式字段选择器。

这个想法是用户可以从未知的 JSON 内容源中选择他们想要使用的字段。

我想创建一个类似于http://mind2soft.com/labs/jquery/tree/但在 C# 中创建内容的输出

我有以下代码

JsonTextReader reader = new JsonTextReader(new StringReader(jsoncontent));
string output = @"<ul id='tree'>
                <li><a href='#'>Data Preview</a>
                <ul>";
while (reader.Read()) {
    if (reader.Value != null) {
        if (reader.TokenType == JsonToken.PropertyName) {
            output += "<li><a href=''>" + reader.Value.ToString() + "</a></li>";
        }

    } else {
        if (reader.TokenType == JsonToken.StartArray) {
            output += "<ul><li>";
        }
        if (reader.TokenType == JsonToken.EndArray) {
            output += "</li></ul>";
        }
        if (reader.TokenType == JsonToken.StartObject) {
            output += "<ul>";
        }
        if (reader.TokenType == JsonToken.EndObject) {
            output += "</ul>";
        }
    }
}

output += @"</ul>
            </li>
            </ul>";

然而,当我同时启动数组和对象时,我想要的输出是创建多个“UL”标签。

谁能指导我正确的方向。

谢谢

4

1 回答 1

0

用语句替换条件if内部elseif else

if (reader.TokenType == JsonToken.StartArray) {
    output += "<ul><li>";
}
else if (reader.TokenType == JsonToken.EndArray) {
    output += "</li></ul>";
}
else if (reader.TokenType == JsonToken.StartObject) {
    output += "<ul>";
}
else if (reader.TokenType == JsonToken.EndObject) {
    output += "</ul>";
}

看起来每次迭代都满足多个条件

于 2013-07-09T20:10:17.287 回答