【问题标题】:Int not getting displayed as string in JSON ObjectInt 没有在 JSON 对象中显示为字符串
【发布时间】:2017-08-21 19:31:19
【问题描述】:

我正在尝试遍历 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”)?

【问题讨论】:

  • 您正在写出文字 JSON 字符串,所以在 0 周围加上引号?
  • 您的整个包含数据类型是一个字符串。您在第二个区块中显示的“对象”来自哪里?是直接来自ItemsAsJson() 函数吗?
  • 另一种方法是执行此答案中的建议。让开发 JSON 序列化程序的人定义正确的 JSON 语法。 stackoverflow.com/questions/1056121/…
  • 永远不要手动形成你的json,使用像Json.Net这样的json解析器来为你做
  • @VivekJeevaKumar 什么不完全有效?如果您将代码更改为ItemAsJson += "{ \"" + index + "\": " + jsonItemList[i] + "},";,您将获得索引周围的引号。如果您遇到不同的问题,我建议您澄清或提出不同的问题。

标签: c# json json.net


【解决方案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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-13
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 2019-12-22
    • 1970-01-01
    • 2020-04-26
    相关资源
    最近更新 更多