0

.NET で JSON をキャッチします。

string result = json_serializer.Deserialize(myJSON);

JSONの構造は次のとおりです。

result
    data[0]
        user
            bio
            name
            nickname
    data[1]
        user
            bio
            name
            nickname    
    data[2]
        user
            bio
            name
            nickname    

そして、何らかの値を持つ最初のニックネーム (文字列として) のみを取得したいと思います。つまり、null ではなく、空でもありません。

どうすればいいですか?

4

3 に答える 3

2

あなたの質問から私が理解していることから、あなたはこのようなものが欲しいでしょう、

public string FirstUserNickname(string JsonUserInfo) 
{
    JavaScriptSerializer JsonSerializer = new JavaScriptSerializer();
    ResultData Results = JsonSerializer.Deserialize<ResultData>(JsonUserInfo);
    foreach (UserInfo UserInfo in Results.result)
    {
        if (string.IsNullOrEmpty(UserInfo.nickname))
            return UserInfo.nickname;
    }
    return null;
}

public class ResultData
{
    public List<UserInfo> result;
}

public class UserInfo
{
    public string bio;
    public string name;
    public string nickname;
}

これはあなたの目標を達成JavaScriptSerializerし、アセンブリのクラスを使用して強く型付けされたアプローチです。System.Web.Extensions詳細については、こちらを参照してください。

于 2013-01-28T10:26:08.673 に答える
1

Linq to JSONを使用すると、次のように .net オブジェクトに逆シリアル化できます。

Result deserializedResult = JsonConvert.DeserializeObject<Result>(json);

その後、LINQ を使用してオブジェクトをクエリできます。

User nicknameduser = deserializedResult.Users
  .FirstOrDefault(r => !string.IsNullOrEmpty(r.nickname))
if (nicknameduser == null) return null;
return nicknameduser.nickname;
于 2013-01-28T10:29:39.147 に答える