我有一个包含7个不同选项的Checkbox,可以检查和使用它们,例如range_close和component_type_stock,component_type_lostech。
我现在正试图通过json writer将它们写入json文件,但是如果我使用
writer.WritePropertyName("ComponentTags");
writer.WriteStartObject();
writer.WritePropertyName("items");
writer.WriteRawValue(ComponentTagsCheckBox.CheckedItems.ToString());
我得到的只是
"ComponentTags": {
"items": System.Windows.Forms.CheckedListBox+CheckedItemCollection,
当我在复选框中标记了range_extreme和component_type_lostech复选框时。
我已经尝试通过替换上一个代码段中的最后一行来使用for循环
string s = "";
for (int x = 0; x <= ComponentTagsCheckBox.CheckedItems.Count - 1; x++)
{
s = s + ComponentTagsCheckBox.CheckedItems[x].ToString(); //+ "\n";
}
writer.WriteRawValue("["+ s +"]");
这里的输出至少是
"ComponentTags": {
"items": [component_type_lostechrange_extreme],
"tagSetSourceFile": ""
}
但输出应该是这个
"ComponentTags" : {
"items" : [
"component_type_variant",
"component_type_variant2",
"range_extreme"
],
"tagSetSourceFile" : ""
我可以不用它看起来像最后一个片段,只要组件被分号分隔并被&#34;&#34;包围。
我还有一个想法是将字符串拆分成一个数组,然后再将它分开,但这似乎有点工作。
答案 0 :(得分:0)
您应该按如下方式更改最后一行:
writer.WriteStartArray();
foreach (var item in ComponentTagsCheckBox.CheckedItems)
{
writer.WriteValue(item.ToString());
}
writer.WriteEnd();