JSONExport icon indicating copy to clipboard operation
JSONExport copied to clipboard

HandyJSON!!!

Open shang1219178163 opened this issue 5 years ago • 6 comments

https://github.com/alibaba/HandyJSON

shang1219178163 avatar Mar 08 '19 01:03 shang1219178163

@shang1219178163 我改了一个,大佬要不要试试?

xyhuangjia avatar Mar 18 '19 01:03 xyhuangjia

@shang1219178163 我改了一个,大佬要不要试试?

大佬发出来试试

heyehao2008 avatar Mar 29 '19 04:03 heyehao2008

need HandyJson support

heyehao2008 avatar Mar 29 '19 04:03 heyehao2008

@shang1219178163 我改了一个,大佬要不要试试?

大佬发出来试试

func mapping(mapper: HelpingMapper) { 这个方法也实现,不需要的字段大家可以自由删除就好了

还有就是现在大部分项目都是swift oc混编,你需要考虑oc的兼容性,大兄弟

shang1219178163 avatar May 06 '19 06:05 shang1219178163

支持HandyJSON和默认值的版本 https://gitee.com/tangbl93/jsonexport 欢迎各位大佬体验。

//
//	CashListItemData.swift
//	Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport

import HandyJSON


class CashListItemData : HandyJSON {

	var hc_id : Int = 0
	var u_nickname : String = ""

	required init() {}

}

tangbl93 avatar Nov 17 '20 07:11 tangbl93

https://github.com/shang1219178163/JSONExport.git

解析 AppStore的返回的app 详情,生成类如下:

//
//	RootClass.swift
//	Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport

import Foundation 
import HandyJSON


@objcMembers class RootClass: NSObject, HandyJSON{

    var resultCount : Int = 0
    var results : [Result]?


    ///	implement an empty initializer.
    required override init(){
    }

    ///	HandyJSON - Comment out does not need to convert.
    func mapping(mapper: HelpingMapper)	{
	    mapper <<< resultCount <-- "resultCount"
	    mapper <<< results <-- "results"
	    
    }

}

@objcMembers class Result: NSObject, HandyJSON{

    var advisories : [String]?
    var appletvScreenshotUrls : [AnyObject]?
    var artistId : Int = 0
    var artistName : String?
    var artistViewUrl : String?
    var artworkUrl100 : String?
    var artworkUrl512 : String?
    var artworkUrl60 : String?
    var averageUserRatingForCurrentVersion : CGFloat = 0
    var bundleId : String?
    var contentAdvisoryRating : String?
    var currency : String?
    var currentVersionReleaseDate : String?
    var descriptionField : String?
    var features : [AnyObject]?
    var fileSizeBytes : String?
    var formattedPrice : String?
    var genreIds : [String]?
    var genres : [String]?
    var ipadScreenshotUrls : [AnyObject]?
    var isGameCenterEnabled : Bool = false
    var isVppDeviceBasedLicensingEnabled : Bool = false
    var kind : String?
    var languageCodesISO2A : [String]?
    var minimumOsVersion : String?
    var price : CGFloat = 0
    var primaryGenreId : Int = 0
    var primaryGenreName : String?
    var releaseDate : String?
    var releaseNotes : String?
    var screenshotUrls : [String]?
    var sellerName : String?
    var sellerUrl : String?
    var supportedDevices : [String]?
    var trackCensoredName : String?
    var trackContentRating : String?
    var trackId : Int = 0
    var trackName : String?
    var trackViewUrl : String?
    var userRatingCountForCurrentVersion : Int = 0
    var version : String?
    var wrapperType : String?


    ///	implement an empty initializer.
    required override init(){
    }

    ///	HandyJSON - Comment out does not need to convert.
    func mapping(mapper: HelpingMapper)	{
	    mapper <<< advisories <-- "advisories"
	    mapper <<< appletvScreenshotUrls <-- "appletvScreenshotUrls"
	    mapper <<< artistId <-- "artistId"
	    mapper <<< artistName <-- "artistName"
	    mapper <<< artistViewUrl <-- "artistViewUrl"
	    mapper <<< artworkUrl100 <-- "artworkUrl100"
	    mapper <<< artworkUrl512 <-- "artworkUrl512"
	    mapper <<< artworkUrl60 <-- "artworkUrl60"
	    mapper <<< averageUserRatingForCurrentVersion <-- "averageUserRatingForCurrentVersion"
	    mapper <<< bundleId <-- "bundleId"
	    mapper <<< contentAdvisoryRating <-- "contentAdvisoryRating"
	    mapper <<< currency <-- "currency"
	    mapper <<< currentVersionReleaseDate <-- "currentVersionReleaseDate"
	    mapper <<< descriptionField <-- "description"
	    mapper <<< features <-- "features"
	    mapper <<< fileSizeBytes <-- "fileSizeBytes"
	    mapper <<< formattedPrice <-- "formattedPrice"
	    mapper <<< genreIds <-- "genreIds"
	    mapper <<< genres <-- "genres"
	    mapper <<< ipadScreenshotUrls <-- "ipadScreenshotUrls"
	    mapper <<< isGameCenterEnabled <-- "isGameCenterEnabled"
	    mapper <<< isVppDeviceBasedLicensingEnabled <-- "isVppDeviceBasedLicensingEnabled"
	    mapper <<< kind <-- "kind"
	    mapper <<< languageCodesISO2A <-- "languageCodesISO2A"
	    mapper <<< minimumOsVersion <-- "minimumOsVersion"
	    mapper <<< price <-- "price"
	    mapper <<< primaryGenreId <-- "primaryGenreId"
	    mapper <<< primaryGenreName <-- "primaryGenreName"
	    mapper <<< releaseDate <-- "releaseDate"
	    mapper <<< releaseNotes <-- "releaseNotes"
	    mapper <<< screenshotUrls <-- "screenshotUrls"
	    mapper <<< sellerName <-- "sellerName"
	    mapper <<< sellerUrl <-- "sellerUrl"
	    mapper <<< supportedDevices <-- "supportedDevices"
	    mapper <<< trackCensoredName <-- "trackCensoredName"
	    mapper <<< trackContentRating <-- "trackContentRating"
	    mapper <<< trackId <-- "trackId"
	    mapper <<< trackName <-- "trackName"
	    mapper <<< trackViewUrl <-- "trackViewUrl"
	    mapper <<< userRatingCountForCurrentVersion <-- "userRatingCountForCurrentVersion"
	    mapper <<< version <-- "version"
	    mapper <<< wrapperType <-- "wrapperType"
	    
    }

}

shang1219178163 avatar Jan 04 '21 10:01 shang1219178163