我希望创建一个类似于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'标签,因为我同时启动数组和对象。
任何人都可以指导我朝正确的方向发展。
由于
答案 0 :(得分:0)
将if
条件中的else
替换为if 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>";
}
看起来每次迭代都满足多个条件