json - SimpleJSON 在处理来自 Postmen 的呼叫时返回 null
问题描述
我已经安装到我的统一 SimpleJSON 中,试图反序列化来自 REST-HTTP 调用的接收到的调用,该调用包含一个 JSON
我正在收听 localhost 3000 并从邮递员发送
GET HTTP/1.1
Host: localhost:3000
Accept: application/json
Content-Type: application/json
cache-control: no-cache
Postman-Token: 3a64322b-a33c-4828-8347-11cdc7da70af
{
"item": "seeds",
"Answers": "5",
"richText": "*some text*"
}------WebKitFormBoundary7MA4YWxkTrZu0gW--
当 Simplejson 收到数据时,我验证原始数据已成功到达
但是,在第 529 行使用令牌“3000accept-encoding”(3000 是端口号)时,该过程会转储错误。
ctx.Add(TokenName, ParseElement(Token.ToString(), TokenIsQuoted));
因为它是一个静态函数,所以我复制了它并创建了一个对象返回版本,它返回了我能想到的用于调试的所有数据:i、aJSON[i]、Token、Token.Length、TokenName、TokenIsQuoted 并将行更改为
string final = "";
...
case ',':
if (QuoteMode)
{
Token.Append(aJSON[i]);
break;
}
final = "aJSON[i] "+aJSON[i] +", token "+ Token + ", length "+ Token.Length +", token Name '" + TokenName+"', IsQuoted " + TokenIsQuoted+"-";
if (Token.Length > 0 || TokenIsQuoted)
{
try
{
ctx.Add(TokenName, ParseElement(Token.ToString(), TokenIsQuoted));
}
catch(Exception e)
{
final+=" "+e;
return final;
}
}
返回的是:
aJSON[i] ,, token gzip, length 4, token Name '3000accept-encoding', IsQuoted False- System.NullReferenceException: Object reference not set to an instance of an object
at SimpleJSON.JSONNode.ParseTester (System.String aJSON) [0x00316] in C:\++Projects\SparkBeyond\Unity\Unity Projects\JSONDeserialize\Assets\SimpleJSON-master\SimpleJSON.cs:690
这表明即使它是一个开关(第 605 行)并且情况是 aJSON[i] 是“,”似乎出于某种原因,aJSON[i] 恰好为空。
你们中有人知道为什么会发生这种情况吗?另外,那部分甚至没有','数字......
我没有更改脚本。我没有添加 SimpleJSONUnity.cs
解决方案
问题出在脚本之前,当我得到 HTTP 答案并将其发送到反序列化而不先抓取正文时。
在调试了整个答案后,我发布了它。简单的 json 有一个 ctx 变量,一旦达到 { 数字(json 中的第一个,而不是 HTTP 调用中的第一个)就会初始化。
这就是为什么我被抛出一个空错误
推荐阅读
- c++ - 类与非类变量的指针初始化
- visual-studio - Visual Studio 2017 - 无法安装 WDK 扩展
- c++ - 缺少 GLSL 哈希表数据:
- c# - ASP.Net MVC 4 中的 SAML 2.0 实现作为 IDP
- reactjs - 更新状态后组件不会重新渲染
- swift - 如何在 ARkit 场景上方添加 UIView 固定元素
- c# - 无法从 COM 端口读取串行响应
- javascript - OneSignal 不再在 Phonegap-build 中构建
- makefile - 为什么“make”只有在隐式的情况下才会删除目标文件
- amazon-web-services - 如何从 ec2 cli 在角色之间切换?