【问题标题】:Display content of JSON files in multiple lines, instead of one long line多行显示 JSON 文件的内容,而不是一长行
【发布时间】:2020-04-13 15:36:45
【问题描述】:

在 Unity 中,我使用 JSON 文件保存我的游戏。当我在 Visual Studio 中打开文件时,它会在一行中显示整个内容及其所有变量。这是我的 JSON 文件的一小部分:

// JSON before my copy / paste-trick (see below)
{"lastTicketDate":"04.13.2020","lastTicket":{"Id":2,"Type":0,"Fortune":"Fortune02","Author":"Me!!!\r","ShinyEffect":0,"BeenDrawn":true},"firstStart":false,"tickets":[{"Id":1,"Type":0,"Fortune":"Fortune01","Author":
// (...)

这不是很可读。如何设置 Visual Studio 以正确显示内容,每个变量都在单独的行中,如下所示:

// JSON after my copy / paste trick (see below)
{
    "lastTicketDate": "04.13.2020",
    "lastTicket": {
        "Id": 2,
        "Type": 0,
        "Fortune": "Fortune02",
        "Author": "Me!!!\r",
        "ShinyEffect": 0,
        "BeenDrawn": true
    },
    "firstStart": false,
    "tickets": [
        {
            "Id": 1,
            "Type": 0,
            "Fortune": "Fortune01",
            "Author": "Me!!!\r",
            "ShinyEffect": 0,
            "BeenDrawn": false
        },
// (...)

目前,我是这样操作的:双击一个单词->复制它(Ctrl+c)->粘贴回去(Ctrl+v ) -> 现在格式已更改为所需的版本。

我该如何解决这个问题,正确的方法是什么?

【问题讨论】:

  • Ctrl+K, D?...
  • 那是 Ctrl+K, Ctrl+D 以防前面的评论没有说清楚。这是“编辑”->“格式化文档”的键盘快捷键。
  • 在我清除所有文件(Ctrl+B、C)中的所有书签后,您的快捷方式现在可以使用了。但是每次 JSON 文件更改时我都必须这样做。我希望它能够开箱即用。

标签: c# json unity3d


【解决方案1】:

现在在保存时以最小尺寸格式输出 json,这是未缩进的,所以这就是为什么所有内容都如此压缩的原因。

您可以改为更改 json 序列化程序以输出识别的格式。

例如使用内置 json util 时;

https://docs.unity3d.com/ScriptReference/JsonUtility.ToJson.html

var indented = JsonUtility.ToJson(this, true);

编辑

由于这个答案随着时间的推移得到了一些关注,以下是在其他流行库中输出缩进 JSON 的方法:

Json.NET (Newtonsoft)

JsonConvert.SerializeObject(json, Formatting.Indented);

System.Text.Json

JsonSerializer.Serialize(json, new JsonSerializerOptions { WriteIndented = true })

【讨论】:

  • 这确实成功了!谢谢你,谢谢你的文档链接~
  • 很高兴我能帮上忙!
猜你喜欢
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多