123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- using System;
- using UnityEngine;
- using UnityEngine.UI;
- using System.Collections.Generic;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- public class JsonNetSample : MonoBehaviour
- {
- public Text Output;
- void Start()
- {
- Output.text = "Start!\n\n";
- TestJson();
- SerailizeJson();
- DeserializeJson();
- LinqToJson();
- JsonPath();
- WriteLine("\nDone!");
- }
- void WriteLine(string msg)
- {
- Output.text = Output.text + msg + "\n";
- }
- public class Product
- {
- public string Name;
- public DateTime ExpiryDate = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc);
- public decimal Price;
- public string[] Sizes;
- public override bool Equals(object obj)
- {
- if (obj is Product)
- {
- Product p = (Product)obj;
- return (p.Name == Name && p.ExpiryDate == ExpiryDate && p.Price == Price);
- }
- return base.Equals(obj);
- }
- public override int GetHashCode()
- {
- return (Name ?? string.Empty).GetHashCode();
- }
- }
- [System.Serializable]
- public class CharacterListItem
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public int Level { get; set; }
- public string Class { get; set; }
- public string Sex { get; set; }
- }
- void TestJson()
- {
- WriteLine("* TestJson");
- var json = "{\"Id\":51, \"Name\":\"padre\", \"Level\":0, \"Class\":\"Vampire\", \"Sex\":\"F\"}";
- var c = JsonConvert.DeserializeObject<CharacterListItem>(json);
- WriteLine(c.Id + " " + c.Name);
- }
- void SerailizeJson()
- {
- WriteLine("* SerailizeJson");
- Product product = new Product();
- product.Name = "Apple";
- product.ExpiryDate = new DateTime(2008, 12, 28);
- product.Sizes = new string[] { "Small" };
- string json = JsonConvert.SerializeObject(product);
- WriteLine(json);
- }
- public class Movie
- {
- public string Name { get; set; }
- public string Description { get; set; }
- public string Classification { get; set; }
- public string Studio { get; set; }
- public DateTime? ReleaseDate { get; set; }
- public List<string> ReleaseCountries { get; set; }
- }
- void DeserializeJson()
- {
- WriteLine("* DeserializeJson");
- string json = @"{
- 'Name': 'Bad Boys',
- 'ReleaseDate': '1995-4-7T00:00:00',
- 'Genres': [
- 'Action',
- 'Comedy'
- ]
- }";
- Movie m = JsonConvert.DeserializeObject<Movie>(json);
- string name = m.Name;
- WriteLine(name);
- }
- void LinqToJson()
- {
- WriteLine("* LinqToJson");
- JArray array = new JArray();
- array.Add("Manual text");
- array.Add(new DateTime(2000, 5, 23));
- JObject o = new JObject();
- o["MyArray"] = array;
- string json = o.ToString();
- WriteLine(json);
- }
- private void JsonPath()
- {
- WriteLine("* JsonPath");
- var o = JObject.Parse(@"{
- 'Stores': [
- 'Lambton Quay',
- 'Willis Street'
- ],
- 'Manufacturers': [
- {
- 'Name': 'Acme Co',
- 'Products': [
- {
- 'Name': 'Anvil',
- 'Price': 50
- }
- ]
- },
- {
- 'Name': 'Contoso',
- 'Products': [
- {
- 'Name': 'Elbow Grease',
- 'Price': 99.95
- },
- {
- 'Name': 'Headlight Fluid',
- 'Price': 4
- }
- ]
- }
- ]
- }");
- JToken acme = o.SelectToken("$.Manufacturers[?(@.Name == 'Acme Co')]");
- WriteLine(acme.ToString());
- IEnumerable<JToken> pricyProducts = o.SelectTokens("$..Products[?(@.Price >= 50)].Name");
- foreach (var item in pricyProducts)
- {
- WriteLine(item.ToString());
- }
- }
- }
|