在Unity中使用Newtonsoft.Json来生成和读取json

首先需要在项目中引用:Newtonsoft.Json.dll

在代码中添加命名空间:using Newtonsoft.Json;

json序列化和反序列化两个重要方法和例子:

JsonConvert.SerializeObject(object value)序列化,它有个重载方法JsonConvert.SerializeObject(object value, params JsonConverter[] converters)

JsonConvert.DeserializeObject(string value, Type type)反序列化,它有个重载方法JsonConvert.DeserializeObject(string value, Type type, params JsonConverter[] converters)

首先我们先建一个Person类代码如下:

public class Person
{
  private string name;
  public string Name
  {
    get { return name; }
    set { name = value; }
  }
  private int age;
  public int Age
  {
    get { return age; }
    set { age = value; }
  }
}

1.序列化

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Newtonsoft.Json;

namespace JSONnet
{
    public partial class test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Person person = new Person();
            person.Name = "GoldenEasy";
            person.Age = 25;
            string strSerializeJSON = JsonConvert.SerializeObject(person);
            Response.Write(strSerializeJSON);
        }
    }
}

输出结果:{"Name":"GoldenEasy","Age":25}

2.反序列化

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Newtonsoft.Json;

namespace JSONnet
{
    public partial class test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Person person = new Person();
            person.Name = "GoldenEasy";
            person.Age = 25;
            string strSerializeJSON = JsonConvert.SerializeObject(person);
            Person user = (Person)JsonConvert.DeserializeObject(strSerializeJSON, typeof(Person));
            Response.Write(user.Name);

        }
    }
}

输出结果:GoldenEasy

也可以使用模板,通过名字获得Json文件

  private static T ParseJson<T>(string filename)
    {
        try
        {
            var filePath = Configs.GetPath(filename);
            if (!File.Exists(filePath)) return default(T);
            var content = File.ReadAllText(filePath);
            return JsonConvert.DeserializeObject<T>(content);
        }
        catch (Exception ex)
        {
            Logger.Log("File Parse" + ex.Message);
            return default(T);
        }
    }

  

时间: 2024-08-02 07:01:50

在Unity中使用Newtonsoft.Json来生成和读取json的相关文章

JSON转换为数组 但读取JSON的顺序目前没法保证

var json = {a : 1, b : 2, c: 3}; var jsonArr = []; for (i in json){ var wrap = []; wrap[0] = i; wrap[1] = json[i]; jsonArr.push(wrap); } JSON转换为数组 但读取JSON的顺序目前没法保证

cocos2dx 3.X 中 json 文件生成与读取

Cocos2d-x 3.0 加入了rapidjson库用于json解析.位于项目的cocos2d/external/json下. rapidjson 是一个不需要包含 .lib 和 .dll 即可运行的可见代码库.项目 wiki 见这里.下面通过两个实例来深入了解它在 cocos2dx 中的用法. 生成JSON文件并保存 #include "CCStdC.h" #include "cocos2d.h" #include "json/document.h&q

unity 中引用 Newtonsoft.Json的 DLL

在unity解析json时,由于此次的数据嵌套层数比较多,不想用原生的json解析方法 https://docs.unity3d.com/Manual/PluginInspector.html 这是unity的官方放置路径的文档 在Assets中创建一个Plugins文件夹,如果是64位电脑则创建一个 x86_64 或 x64  文件夹,然后将dll文件拖放进去就可以了 注:需要注意unity是否支持该版本的文件. 此处放出下载地址 https://github.com/SaladLab/Jso

java根据数据库中的数据 的list 生成 tree 型 json

这些代码 本来 也是 我网上找的但是 很遗憾 ,用数据源取到的list ,无法正常返回到前台,list 转json 的时候 就会 出错 ,我展示 正确的代码 1. package com.labci.javamail.test; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; /** * 节点类 */ class Node { /

Unity中根据角度和距离生成物体

using UnityEngine; using System.Collections; public class CreateGameObject : MonoBehaviour { private Vector3 centerPos; //圆心的位置 private float radius = 5; //半径 private float angle = 0; //角度 public GameObject cube; // Use this for initialization void S

Spine工具在Unity中的使用

Spine工具以前都是跟Cocos 2d结合的比较多,很多人以为Unity有了Toolkit 2d和NGUI不需要Spine了,其实这种理解是错误的,Spine非常适合Unity,不需要Toolkit 2D,自己本身就可以适应Unity. 而且由于他的资源量非常少,在效率和安装包方面都比Toolkit 2D好一些,现在Spine工具已经开始在Unity中使用了. Spine说白了它就是一种调试2D骨骼动画的工具,经过它调试的工具如何在Unity中使用?我们下面开始围绕这个问题展开讨论. 首先我们

JS中生成与解析JSON

js中生成json对象 js中解析json字符串: 1.eval("..."): var a_id=eval('{"name":123}'); 如果eval中的内容含有恶意脚本就麻烦了 2.json_parse: 需要导入json_parse.js: <script src="js/json_parse.js"></script>    <script language="javascript"&

Asp.Net中使用Newtonsoft.Json转换,读取,写入

using Newtonsoft.Json; using Newtonsoft.Json.Converters; //把Json字符串反序列化为对象 目标对象 = JsonConvert.DeserializeObject(JSON字符串, typeof(目标对象)); //把目标对象序列化为Json字符串 string Json字符串 = JsonConvert.SerializeObject(目标对象); 1.引用Newtonsoft.Json.dll 2.在项目中添加引用.. 序列化和反序

Unity中使用json序列化失败

问题 //为什么用json序列化这样没得问题 Dictionary<string, int> dic = new Dictionary<string, int>(); dic.Add("1", 1); string strJson = LitJson.JsonMapper.ToJson(dic); //这样有问题 Dictionary<int, int> dic2 = new Dictionary<int, int>(); dic2.Ad