0

次のように、ファイルから json を読み取り、任意のオブジェクトにシリアル化しています。

MyObject o = myjson.FromJson<MyObject>();

ServiceStack に移行する前に Newtonsoft.Json を使用していたため、json テキストは正しいです。

ただし、シリアル化した後、オブジェクト 'o' はそれに応じて設定されません (つまり、空またはオブジェクトのコンストラクターで設定されたデフォルト値)。

クラスは次のとおりです。

public class Options
{
    public string Email;
    public string Password;
    public string Answer;
    //etc...

    public Options()
    {
        this.Email = "default";
        this.Password = "default";
        //etc...
    }
}

何が間違っている可能性がありますか?

4

2 に答える 2

0

JSON がテキスト ファイル上にあると仮定しましょう。

using Newtonsoft.Json;

    var item = @"C:\someJSON.txt";
    var op = JsonConvert.DeserializeObject<SavedOpData>(File.ReadAllText(item));

私のクラスSavedOpData

   internal partial class SavedOpData
        {
            internal class AppUri
            {
                public string file_name;
                public string file_uri;
                public int file_size;
                public string file_hash;
            }
        }

JSON にシリアル化するには、次の手順を実行します。

var serialized = JsonConvert.SerializeObject(SavedOpData);

SavedOpData上記で投稿したクラスのインスタンスであり、データが既に入力されていると仮定します。

于 2014-02-19T14:37:09.170 に答える