Unity에 API를 위한 Json 받거나 보내기를 위한 기초를 편하게 만든다.
아래 도구에 붙이기
예를 들어 ↓ 같은 json
{
"err":"2",
"Ranking":
[
{
"number": "1",
"shopId": "2006",
"shopName":"川崎店",
"totalMedal": "500",
"homeFlg": "0"
},
{
"number": "2",
"shopId": "2006",
"shopName":"都築店",
"totalMedal": "500",
"homeFlg": "1"
}
],
"message":
[
"レイドボス襲来!",
"生誕祭"
]
}
이런 느낌일 정도 자동 생성해 줍니다. 불필요한 소스를 잘라내거나 여러가지 설정할 수 있습니다
다음에 get set 라든지의 자동 프로퍼티가 있으면 Unity에서 public에 읽을 수 없게 되므로
대체하고 지우십시오.
json에서 class 변수를 사용하고 싶다면 위에 [Serializable]을 작성하십시오.
그리고 숫자는 왠지 전부 long이 되기 때문에 int 나름대로 고쳐
APIDEMO.cs
// <auto-generated />
//
// To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
//
// using EndAPIValue;
//
// var getPlanetGroupRanking = GetPlanetGroupRanking.FromJson(jsonString);
namespace EndAPIValue
using System;
using System.Collections.Generic;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
public partial class GetPlanetGroupRanking
{
[JsonProperty("err")]
[JsonConverter(typeof(ParseStringConverter))]
public int Err ;
[JsonProperty("Ranking")]
public List<Ranking> Ranking ;
[JsonProperty("message")]
public List<string> Message ;
}
[Serializable]
public partial class Ranking
{
[JsonProperty("number")]
[JsonConverter(typeof(ParseStringConverter))]
public int Number ;
[JsonProperty("shopId")]
[JsonConverter(typeof(ParseStringConverter))]
public int ShopId ;
[JsonProperty("shopName")]
public string ShopName ;
[JsonProperty("totalMedal")]
[JsonConverter(typeof(ParseStringConverter))]
public int TotalMedal ;
[JsonProperty("homeFlg")]
[JsonConverter(typeof(ParseStringConverter))]
public int HomeFlg ;
}
public partial class GetPlanetGroupRanking
{
public static GetPlanetGroupRanking FromJson(string json) => JsonConvert.DeserializeObject<GetPlanetGroupRanking>(json, EndAPIValue.Converter.Settings);
}
public static class Serialize
{
public static string ToJson(this GetPlanetGroupRanking self) => JsonConvert.SerializeObject(self, EndAPIValue.Converter.Settings);
}
internal static class Converter
{
public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
{
MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
DateParseHandling = DateParseHandling.None,
Converters =
{
new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
},
};
}
internal class ParseStringConverter : JsonConverter
{
public override bool CanConvert(Type t) => t == typeof(int) || t == typeof(int?);
public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.Null) return null;
var value = serializer.Deserialize<string>(reader);
int l;
throw new Exception("Cannot unmarshal type int");
}
public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
{
if (untypedValue == null)
{
serializer.Serialize(writer, null);
return;
}
var value = (int)untypedValue;
serializer.Serialize(writer, value.ToString());
return;
}
public static readonly ParseStringConverter Singleton = new ParseStringConverter();
}
}
[JsonProperty("shopId")]
이런 것을 사용하고 싶다면,
http://www.newtonsoft.com/json으로 가서 zip을 다운로드하십시오.
zip 파일을 압축 해제하고 "Bin\Net20\Newtonsoft.json.dll"을 Unity의 Plugins 폴더에 복사합니다.
Reference
이 문제에 관하여(Unity에 API를 위한 Json 받거나 보내기를 위한 기초를 편하게 만든다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/monolith8/items/1278e851503cbf805d48텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)