C# ์์ ๊ฐ๋ณ๊ฒ ์๋ํ๋ JSON ๋ผ์ด๋ธ๋ฌ๋ฆฌ (for Unity3D)
- Unity3D(Mono) ์๋ฒฝ ํธํ
- 1500์ค ์ ๋์ ์ ์ ์ฝ๋
- Object Mapping
- JsonObject๋ฅผ ํตํ JSON String ์์ฑ
์ฝ๋๋ฅผ ๋ชจ๋ ๋ค์ด ๋ฐ์๋ค์ Unity3D ํ๋ก์ ํธ์ Assetsํด๋์ ๋ฃ๊ณ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. Object์ Property๋ง ์ธ์ํ๊ฒ ๋์ด ์์ต๋๋ค.
JSON๋ฌธ์์ด์ ๊ฐ์ฒด๋ก
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SolJSONExample
{
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Company
{
public Person CEO { get; set; }
public List<Person> Staffs { get; set; }
}
class Program
{
static void Main(string[] args)
{
// ๋จ์ผ ๊ฐ์ฒด Mapping ์์
{
string person_info_str = "{\"Name\":\"ํ๊ธธ๋\", \"Age\": 13}";
Person person_info = SolJSON.Convert.JsonConverter.ToObject<Person>(person_info_str);
Console.WriteLine("Name = " + person_info.Name);
Console.WriteLine("Age = " + person_info.Age);
}
// ๋ฐฐ์ด Mapping ์์
{
string person_infos_str = "[{\"Name\":\"ํ๊ธธ๋\", \"Age\": 13},{\"Name\":\"์ํฌ\", \"Age\": 20}]";
List<Person> person_infos = SolJSON.Convert.JsonConverter.ToObject<List<Person>>(person_infos_str);
foreach (var person_info in person_infos)
{
Console.WriteLine("Name = " + person_info.Name);
Console.WriteLine("Age = " + person_info.Age);
}
}
// ๋ณตํฉ ๊ฐ์ฒด Maaping ์์
{
string company_str = "{\"CEO\":{\"Name\":\"ํ๊ธธ๋\", \"Age\": 13}, \"Staffs\": [{\"Name\":\"์ฒ ์\", \"Age\": 25}, {\"Name\":\"์ํฌ\", \"Age\": 20}]}";
Company company = SolJSON.Convert.JsonConverter.ToObject<Company>(company_str);
Console.WriteLine("CEO.Name = " + company.CEO.Name);
Console.WriteLine("Staffs");
foreach (var staff in company.Staffs)
{
Console.WriteLine("Name = " + staff.Name);
Console.WriteLine("Age = " + staff.Age);
}
}
}
}
}
๊ฐ์ฒด๋ฅผ JSON๋ฌธ์์ด๋ก
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SolJSONExample
{
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
Person person = new Person()
{
Name = "ํ๊ธธ๋",
Age = 16
};
Console.WriteLine("json string = " + SolJSON.Convert.JsonConverter.ToJSON(person));
}
}
}
JSON Object๋ฅผ ์ฌ์ฉํด์ ๋์ JSON ํ์ฑ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SolJSONExample
{
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
// ๋จ์ผ ๊ฐ์ฒด ๋์ ํ์ฑ
{
string person_info_str = "{\"Name\":\"ํ๊ธธ๋\", \"Age\": 13}";
SolJSON.Types.JsonObject person_info_json_object = SolJSON.Convert.JsonConverter.ToJsonObject(person_info_str);
if ( person_info_json_object.Type == SolJSON.Types.JsonObject.TYPE.DICTONARY )
{
if ( person_info_json_object.AsDictonary.Contains("Name") )
{
Console.WriteLine("Name = " + person_info_json_object.AsDictonary["Name"].AsString);
}
}
}
// ๋ฐฐ์ด ๋์ ํ์ฑ
{
string person_infos_str = "[{\"Name\":\"ํ๊ธธ๋\", \"Age\": 13},{\"Name\":\"์ํฌ\", \"Age\": 20}]";
SolJSON.Types.JsonObject person_infos_json_object = SolJSON.Convert.JsonConverter.ToJsonObject(person_infos_str);
foreach (var person_info in person_infos_json_object.AsArray)
{
Console.WriteLine("Name = " + person_info.AsDictonary["Name"].AsString);
Console.WriteLine("Age = " + person_info.AsDictonary["Age"].AsNumber.IntValue);
}
}
}
}
}
JSON Object๋ฅผ ์ฌ์ฉํด์ ๋์ JSON ์์ฑ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SolJSONExample
{
class Program
{
static void Main(string[] args)
{
SolJSON.Types.JsonDictonary person_dict = new SolJSON.Types.JsonDictonary();
person_dict.Add("Name", new SolJSON.Types.JsonString("ํ๊ธธ๋"));
person_dict.Add("Age", new SolJSON.Types.JsonNumber(13));
Console.WriteLine("json string = " + person_dict.ToString());
}
}
}
public domain
์์ ์ ์ผ๋ก๋ ์์ ๋กญ๊ฒ ์ฌ์ฉ๊ฐ๋ฅํฉ๋๋ค.
olambdao - ๋ฒ๊ทธ์ก์ด๋ ธ์
Kexplo - ๋ฒ๊ทธ์ก์ด๋ ธ์2