Skip to content

Latest commit

ย 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 

Repository files navigation

SolJSON

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

์ƒ์—…์ ์œผ๋กœ๋„ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Thanks To

olambdao - ๋ฒ„๊ทธ์žก์ด๋…ธ์˜ˆ

Kexplo - ๋ฒ„๊ทธ์žก์ด๋…ธ์˜ˆ2

About

tiny JSON library for Unity3D

Resources

Stars

8 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages