json格式
{
//key
"header": ["a","b","c","d"....]
//base64value
"data": "Fo1NPq+5xT8WjU0+AAAAAJFSBj/eNBs+D0TOPk9GHUBP8E4+AAAAAHlxMz8AAAAAAAA
AABPdXT+0VLm+AAAAAN40Gz4AAAAAAAAAAAAAAAAAAAAAAAAAAIHlCT/yzuw/ZfZ5Pr56Wr8AAAA
ACKzJPrVyrT0AAAAAgeUJPw9Ezj4AAAAAAAAAAAAAwECb94Q/AAAAAAAAAAAAAAAAAAAAAAAAAAA
cbDg+AAAAAAAAAADrRjA/AAAAAA9Ezj6RUgY/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFo1NPt4
0Gz4AAAAAzmR9PSKxkD4AAAAAAAAAACKxkD4isZA+/1seQGpprz7nsAFAAAAAAAAAAAAAAAAAvnp
av7IxPj+Ozrk+AAAAAFaU3r4xcZU/AAAAAAAAAAAAAAAAtXKtPf6NBz//KLw/D0TOPgAAAAAAAAA
AZfZ5PltCDD08KIc/AAAAANpPGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABP8E4+AAAAAAAAAAA
AAAAAZfZ5PiLXwj9oQ9o/AAAAAAAAAAAAAAAAAAAAAAAAAABqaa8+AAAAALRUub4AAAAAAAAAAAA
AAACvucU/57ABQAAAAADusOQ+MXGVP0nUQj8WjU0+AAAAAAAAAAAAAAAAAAAAAFtCDD15cTM/E91
dPwAAAAAAAAAAAAAAAJv3hD9oQ9o/AAAAALIxPj8AAAAACKzJPmqc3z8i18I/uQRXPwAAAAAAAAA
AAAAAACKxkD4AAAAAAAAAAN40Gz7OZH09ZfZ5Pmpprz7/KLw/AAAAAO1MLD8AAAAAHGw4PgAAwEB
WlN6+AAAAAGpprz4AAAAAJVcxOwAAAAAAAAAAT0YdQAAAAAAAAAAAAAAAAAVvSz5gDsY/BW9LPgA
AAAAuSAc/f4MbPg9Ezj50oB1AORJPPgAAAADbNDQ/AAAAAAAAAAC8pF4/NyC7vgAAAAB/gxs+AAA
AAAAAAAAAAAAAAAAAAAAAAAAcaQo/yOjtP+OoeT5o........."
}
解析data
using System;
using System.IO;
using System.Text;
using Newtonsoft.Json.Linq;
class Program
{
static void Main()
{
// 定义文件路径
string FilePath = "C:\\Users\\NN\\Desktop\\SkyCreatorPlugin\\output.json";
try
{
// 检查文件是否存在
if (File.Exists(FilePath))
{
// 读取JSON文件内容
string jsonContents = File.ReadAllText(FilePath);
// 解析JSON字符串为JObject对象
JObject jsonObject = JObject.Parse(jsonContents);
// 获取JSON中的"data"字段
JToken dataToken = jsonObject["data"];
// 检查是否成功获取到"data"字段且数据类型为字符串
if (dataToken != null && dataToken.Type == JTokenType.String)
{
// 提取Base64编码的二进制数据
string base64Data = (string)dataToken;
byte[] bytes = Convert.FromBase64String(base64Data);
// 计算要打印的浮点数个数,最多100个(每个浮点数占4个字节)
限制一百个是因为数据可能无限长,我原来的数据就有几千万
所以给只打印前一百,如果想全部打印直接打印bytes的长度
int printCount = Math.Min(100, bytes.Length / 4);
// 循环解析并打印浮点数
for (int i = 0; i < printCount; i++)
{
// 计算当前浮点数在字节数组中的起始位置
int byteIndex = i * 4;
// 将字节数组中的4个字节转换为单精度浮点数
float decodedFloat = BitConverter.ToSingle(bytes, byteIndex);
// 打印序号和解码后的浮点数
Console.WriteLine(i + " : " + decodedFloat);
}
}
else
{
Console.WriteLine("找不到 \"data\" 字段或其数据类型不正确");
}
}
}
catch (Exception ex)
{
Console.WriteLine("错误:" + ex.Message);
}
}
}
以上为自己写代码的记录,以防脑残忘了