LYJsonToFile 可以根據(jù)JSON生成相應(yīng)的Model文件。目前支持生成Objective-C、Swift和Java。
下載該項(xiàng)目并解壓,用瀏覽器打開index.html即可使用。
示例
例如能夠根據(jù)JSON
{"name" : "", "age" : 17}
生成Swift內(nèi)容
// LYModel.swift // HLLL // Created by LY on 2020/6/11. // Copyright ? 2020 LY. All rights reserved. // import UIKit class LYModel { var name: String = ""; var age: Int?; }
并且能夠下載生成的文件。
靜態(tài)圖

動(dòng)態(tài)圖

支持語(yǔ)言
支持語(yǔ)言:Objective-C、Swift和Java。
注意:由于本人對(duì)Java不是很熟悉,也許Java語(yǔ)法有誤,可以聯(lián)系我,或者自行修改。
你也可以模仿示例為其他語(yǔ)言生成文件。
使用說(shuō)明
下載該項(xiàng)目并解壓,用瀏覽器打開index.html即可使用。
1.選擇對(duì)應(yīng)語(yǔ)言;
2.左側(cè)輸入框 輸入正確格式的JSON;
3.右側(cè)各個(gè)輸入框修改對(duì)應(yīng)的Class名稱;
4.下載文件。
注意事項(xiàng):切換語(yǔ)言或者修改左側(cè)輸入JSON時(shí),右側(cè)的所有Class名稱都會(huì)重置為默認(rèn)。
設(shè)置
在language-config.js文件中修改對(duì)應(yīng)語(yǔ)言的設(shè)置。
不同語(yǔ)言的設(shè)置不盡相同。
| 參數(shù)名稱 | 參數(shù)說(shuō)明 | 示例 | 是否能修改 |
|---|---|---|---|
| langueName | 語(yǔ)言名稱 | 不建議修改 | |
| defaultParentClass | 默認(rèn)父類 | 是 | |
| defaultImportText | 默認(rèn)的導(dǎo)入文件信息 | 是 | |
| defaultParentClass | 默認(rèn)父類 | 是 | |
| defineStartText | Objective-C對(duì)Swift的宏,其他語(yǔ)言忽略 | 是 | |
| defineEndText | Objective-C對(duì)Swift的宏,其他語(yǔ)言忽略 | 是 | |
| modelNameHeader | 默認(rèn)model名字的前邊部分 | 例如設(shè)置為L(zhǎng)Y,那么默認(rèn)生成的Class格式為L(zhǎng)YXXXXX | 建議修改為自己的相關(guān)信息 |
| modelNameFooter | 默認(rèn)model名字的后邊部分 | 例如設(shè)置為Model,那么默認(rèn)生成的Class格式為XXXXXModel | 建議修改為自己的相關(guān)信息 |
| allCLassInOneFile | 是否全部class在一個(gè)文件,部分語(yǔ)言不支持,例如Java | 是 | |
| showContainerGeneric | 是否顯示容器(數(shù)組、集合等)的泛型類型。是否支持看語(yǔ)言而定,例如Swift必須寫泛型 | 是 | |
| propertyKeywords | 聲明屬性的關(guān)鍵詞 | 是 | |
| createdInfo | 創(chuàng)建信息 | 建議修改為自己的相關(guān)信息 |
注意事項(xiàng)
1.由于JavaScript里邊小數(shù)點(diǎn)后面為0的數(shù)字全部判斷為int,例如:填寫JSON為{“width” : 17.0},那么width字段會(huì)被判斷為int的類型;
2.日期不做處理,因?yàn)椴幻鞔_JSON里邊字符什么格式為日期,也有可能是時(shí)間戳對(duì)應(yīng)日期。
為其他語(yǔ)言創(chuàng)建配置
1.在language-config.js里邊添加相應(yīng)語(yǔ)言的配置JSON。langueName改為該語(yǔ)言的名稱,各項(xiàng)配置也改為該語(yǔ)言的配置。
2.在creator文件夾里邊創(chuàng)建該語(yǔ)言的creator.js,里邊的內(nèi)容模仿其他已寫好的語(yǔ)言即可。
3.修改json-parse.js里邊LYFileInfoMetaHandler里邊的兩個(gè)分發(fā)方法,修改LYCreateFileContentForAllClass里邊的分發(fā)方法。

4.修改index.html里邊的langues
langues: ['ObjectiveC', 'Swift', 'Java', '你添加的語(yǔ)言']

注意langues數(shù)組語(yǔ)言的順序要跟language-config.js里邊LanguesConfigArray數(shù)組順序?qū)?yīng)。