Я установил в свое единство 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 получил данные, я убедился, что необработанные данные успешно доставлены
однако процесс выдает ошибку при использовании токена «3000accept-encoding» (3000 — номер порта) в строке 529.
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
var N = JSON.Parse(the_JSON_string); var versionString = N["item"].Value;
, вам следует сосредоточиться на преобразовании полученной строки в действительную строку JSON, чем с ней не должно быть проблем. - person derHugo   schedule 18.03.2019