web-dev-qa-db-ja.com

JSON解析エラー:オブジェクトメンバーの名前がありません

私はjsonを初めて使用し、基本的な例を機能させようとしています。

私のhttpリクエストは{'username': '1'}、{'username': '1'}を返します。

有効なjsonがどのように見えるかだけでなく、それを文字列変数に入れて逆シリアル化する方法についても混乱しています。

ToJsonは{'username': '1'}を返すので、正しいことは二重引用符で囲んで変換することだと思いました。

私は明らかに何かが欠けています!

class DataItem{

    public string username;
}

string json = "{'username': '1'}";

deserialized = JsonUtility.FromJson<DataItem>(json);

エラー:ArgumentException:JSON解析エラー:オブジェクトメンバーの名前がありません。

5
lawrencehagman

非常に有益な回答で、私は欠けていたものを見つけました。

// Temp Data Struct
class DataItem{
    public string username;
    }

//Valid Json look like : {"username": "1"}

//Valid Json must be double quoted again when assigned to string var
// or escaped if you want 'valid' Json to be passed to the FromJson method
//string json = "{\"username\": \"1\"}"; or

string json = @"{""username"": ""1""}";

DataItem deserialized = JsonUtility.FromJson<DataItem>(json);

Debug.Log("Deserialized "+ deserialized.username);

'Deserialized1'を返します

非常に基本的なものですが、私がそれを理解するのを手伝ってくれてありがとう!

7
lawrencehagman

二重引用符( ")を使用してキーを定義してみてください。

おそらく、以下のこのリファレンスが役立つかもしれません。

https://tools.ietf.org/html/rfc7159#page-12

3