1
class Program
{
    static void Main(string[] args)
    {
        string json = JsonConvert.SerializeObject(new Account { Name = "test" }, Newtonsoft.Json.Formatting.Indented,
        new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, PreserveReferencesHandling = PreserveReferencesHandling.Objects });
        Console.Out.Write(json);
        while (true) 
        {
        }
    }
}

class Account {
    public String Name;
}

ねえ、私はJsonに入ろうとしています。オブジェクトを逆シリアル化したい。文字列から型情報を取得したい。したがって、逆シリアル化するときは、jsonがタイプを指定せずにそれ自体で認識できるようにします。それは可能ですか?

よろしく、ブライアン

4

1 に答える 1

1

残念ながら、Json.netはjsonによってタイプを推測できませんが、Jsonオブジェクトを動的に操作する場合は、Newtonsoft.Json.Linq名前空間からJToken、JObject、およびJArrayタイプを確認してください。あなたはそのようなパスからJsonを読むことができます

var myObject = JObject.Parse(jsonString)
var someObject = myObject["myOtherObject"]["otherThing"];
var myString = (string) someObject["theString"];

Json.netのこの部分が非常に役立つと思います。お役に立てば幸いです:)

于 2013-02-08T05:30:18.390 に答える