ModelSynchro 0.2.3

ModelSynchro 0.2.3

Jonathan Samudio 维护。



  • 作者:
  • Jonathan Samudio

ModelSynchro

Swift 4 的 JSON 模型生成器

描述

从 JSON 自动生成网络模型并保持其更新的方法。

逻辑图.

安装

CocoaPods

ModelSynchro 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中:

pod 'ModelSynchro'

在将 ModelSynchro 添加到 Podfile 后,将以下脚本添加到您的构建阶段中作为运行脚本。

"${PODS_ROOT}/ModelSynchro/ModelSynchro/Source/ModelSynchro" -projectDirectory ${SRCROOT}/

接下来,您需要配置一个自定义的 configuration.json 文件并将其添加到项目的根目录中。

{
  "authorName" : "Jonathan Samudio",
  "companyName" : "Prolific Interactive",
  "projectName" : "MyProject",
  "language" : "swift",
  "outputDirectory" : "MyProject/Models/",
  "localJSONDirectory" : [
    {
        "inputDirectory" : "SampleJSON1/",
        "outputDirectory" : "SampleJSONOutput1/"
    },
    {
        "inputDirectory" : "SampleJSON2/",
        "outputDirectory" : "SampleJSONOutput2/"
    }
  ],
  "endpoints" : [
    {
      "url" : "https://fbdocs.cn/react-native/movies.json",
      "name" : "Movies"
    },
    {
      "url" : "https://fbdocs.cn/react-native/movies.json",
      "name" : "Movies"
    }
  ],
  "mappedModelNames" : [
    {
        "jsonKey" : "filters",
        "mappedName" : "Filter"
    },
    {
        "jsonKey" : "event_guests",
        "mappedName" : "EventGuest"
    },
    {
        "jsonKey" : "event",
        "mappedName" : "RegistrationEvent"
    },
    {
        "fileName": "Event",
        "mappedName": "MappedEvent"
    }
  ]
}

手动安装

要手动运行应用程序,请运行以下命令。

[Directory to ModelSynchro source]/ModelSynchro -projectDirectory [Root Project Directory]

自定义键

如果从api获取的变量名不是您希望用作模型变量名的名称,那么ModelSynchro允许您标记并更新您的模型变量名。以下面的swift模型为例。

struct Book: Codable {
	let author: String
	let id: Int

	enum CodingKeys: String, CodingKey {
		case author = "author"
		case id = "id"
	}
}

如果您想将id更改为bookId,只需将变量名从id更改为bookId,并在变量声明后标记一行//即可。此外,需要将CodingKeys中的id更改为bookId

struct Book: Codable {
	let author: String
	let bookId: Int //

	enum CodingKeys: String, CodingKey {
		case author = "author"
		case bookId = "id"
	}
}

自定义模型名称

默认情况下,Swift网络模型的名称设置为本地JSON文件的名称或子模型的JSON对象的键。如果您想将模型的名称更改为其他名称,请将mappedModelNames对象添加到配置文件中。在此,您可以将JSON键或文件名与其映射名称一起添加。

"mappedModelNames" : [
    {
        "jsonKey" : "filters",
        "mappedName" : "Filter"
    },
    {
        "jsonKey" : "event_guests",
        "mappedName" : "EventGuest"
    },
    {
        "jsonKey" : "event",
        "mappedName" : "RegistrationEvent"
    },
    {
        "fileName": "Event",
        "mappedName": "MappedEvent"
    }
]

语言

目前支持将swift作为生成模型的主语言。objective-c也提供支持,但目前处于beta版本。要添加自定义语言,请参阅LanguageFormatter协议以创建新的语言格式化程序。