Int未在JSON对象中显示为字符串

时间:2017-08-21 19:31:20

标签: c# json json.net

我试图遍历JSON对象列表并将它们转换为索引的JSON。

以下是我写的代码:

private string ItemsAsJson(List<string> jsonItemList)
{
    string ItemAsJson = "";
    for (int i = 0; i < jsonItemList.Count; i++)
    {
        string index = i.ToString();
        ItemAsJson += "{ " + index + " : " + jsonItemList[i] + "},";
    }
    return ItemAsJson;
}

但是我得到的对象如下:

{
    0: {
        "item_type": "Batch",
        "item_id": "82",
        "bill_item_name": "A TO Z",
        "quantity": "1",
        "inventory_id": "82",
        "individual_price": "2.90",
        "batch_no": "",

如何将上述文本中的0转换为字符串(“0”)?

1 个答案:

答案 0 :(得分:-1)

最好的答案是使用JSON解析器库,如Json.NET,而不是手动解析JSON。

如果由于某种原因决定继续使用您的方法,您可以通过转义字符串中的引用来添加索引号周围的引号,如\"

private string ItemsAsJson(List<string> jsonItemList)
{
    string ItemAsJson = "";
    for (int i = 0; i < jsonItemList.Count; i++)
    {
        string index = i.ToString();
        ItemAsJson += "{ \"" + index + "\": " + jsonItemList[i] + "},";
    }
    return ItemAsJson;
}

另外,如果您要构建这样的字符串,我建议您使用StringBuilder代替+=

private string ItemsAsJson(List<string> jsonItemList)
{
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < jsonItemList.Count; i++)
    {
        builder.Append("{ \"");
        builder.Append(i);
        builder.Append("\":");
        builder.Append(jsonItemList[i]);
        builder.Append("},");
    }
    return builder.ToString();
}