You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中如何将JSON的drones数组转换为二维int数组?

解决方案

一、当前JObject.Parse用法无问题

你现有的JSON解析逻辑本身是正确的,但要注意两个细节:

  • 若JSON内容是多行结构,reader.ReadLine()仅能读取单行,会导致解析失败,需改用ReadToEnd()或循环读取完整数据流;
  • 你提供的原始JSON中子数组末尾存在多余逗号(如0.0,),部分解析器会报错,Newtonsoft.Json可自动兼容,但其他工具可能需要先清理该格式问题。

二、将drones转为二维int数组的实现方法

方法1:用Newtonsoft.Json直接反序列化(推荐)

利用你已在使用的Newtonsoft.Json库,可直接将JSON字段反序列化为目标数组,无需手动遍历:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

// ...
string incoming_data = reader.ReadLine();
if(incoming_data != null)
{
    // 方式A:直接提取drones字段反序列化
    JObject json = JObject.Parse(incoming_data);
    int[][] dronesArray = JsonConvert.DeserializeObject<int[][]>(json["drones"].ToString());

    // 方式B:定义匹配结构的类,整体反序列化
    // RootObject root = JsonConvert.DeserializeObject<RootObject>(incoming_data);
    // int[][] dronesArray = root.drones;
}

// 对应方式B的根类定义
public class RootObject
{
    public int[][] drones { get; set; }
}

方法2:从JObject手动遍历转换

若需保留JObject解析流程,可通过遍历嵌套数组完成类型转换:

using Newtonsoft.Json.Linq;

// ...
string incoming_data = reader.ReadLine();
if(incoming_data != null)
{
    JObject json = JObject.Parse(incoming_data);
    JArray dronesJArray = (JArray)json["drones"];
    
    int[][] dronesArray = new int[dronesJArray.Count][];
    for(int i = 0; i < dronesJArray.Count; i++)
    {
        JArray subArray = (JArray)dronesJArray[i];
        // 将JSON中的浮点值转为int
        dronesArray[i] = subArray.Select(item => (int)item.Value<double>()).ToArray();
    }
}

三、可用的现成解析工具

  1. Newtonsoft.Json:即你当前使用的JObject所属库,Unity中可通过Package Manager搜索com.unity.nuget.newtonsoft-json安装,支持复杂类型转换、格式容错,是Unity开发中最常用的第三方JSON工具;
  2. Unity内置JsonUtility:无需额外安装,但需定义对应数据类,且对JSON格式要求更严格(需清理多余逗号),示例代码:
[System.Serializable]
public class RootObject
{
    public int[][] drones;
}

// 解析逻辑
string incoming_data = reader.ReadLine();
if(incoming_data != null)
{
    RootObject root = JsonUtility.FromJson<RootObject>(incoming_data);
    int[][] dronesArray = root.drones;
}

内容的提问来源于stack exchange,提问作者Vincent Schiller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:25:38