CheckBox,通过从Checkbox中读取所选项目,在Json Writer上添加多个项目

时间:2018-05-01 16:29:44

标签: c# json checkbox

我有一个包含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;包围。

我还有一个想法是将字符串拆分成一个数组,然后再将它分开,但这似乎有点工作。

1 个答案:

答案 0 :(得分:0)

您应该按如下方式更改最后一行:

writer.WriteStartArray();
foreach (var item in ComponentTagsCheckBox.CheckedItems)
{
    writer.WriteValue(item.ToString());
}

writer.WriteEnd();