2

JsonConvert.SerializeObjectを使用するときに値のみを取得するにはどうすればよいですか? ID、名前などの単語を繰り返す必要はありません...

例: { id: 189, name:'Paul', age:31, } x { [189, 'Paul', 31] }

ありがとう!

PageList クラスで使用する必要があります

public class PageList {
    IEnumerable _rows;
    int _total;
    int _page;
    int _records;
    object _userData;

    public PageList(IEnumerable rows, int page, int total, int records, object userData) {
        _rows = rows;
        _page = page;
        _total = total;
        _records = records;
        _userData = userData;
    }

    public PageList(IEnumerable rows, int page, int total, int records)
        : this(rows, page, total, records, null) {

    }

    public int total { get { return _total; } }

    public int page { get { return _page; } }

    public int records { get { return _records; } }

    public IEnumerable rows { get { return _rows; } }

    [JsonIgnore]
    public object userData { get { return _userData; } }

    public override string ToString() {
        return Newtonsoft.Json.JsonConvert.SerializeObject(this, new IsoDateTimeConverter() { DateTimeFormat = "dd-MM-yyyy hh:mm:ss" });
    }
}
4

2 に答える 2

2

私が考えることができる最も近いものは

var yourObjectList = List<YourObject>(){.....}

string s = JsonConvert.SerializeObject(GetObjectArray(yourObjectList));

public static IEnumerable<object> GetObjectArray<T>(IEnumerable<T> obj)
{
    return obj.Select(o => o.GetType().GetProperties().Select(p => p.GetValue(o, null)));
}
于 2012-05-10T21:40:38.050 に答える
1

2 つ目は有効な JSON ではありません ( { 189, 'Paul', 31 })。代わりに配列が必要な場合があります ( [ 189, 'Paul', 31 ])。その場合、シリアライザーを直接使用する代わりに、最初にオブジェクトを にロードしてから、JObjectその値のみを取得できます。

public class Foo
{
    public int id;
    public string name;
    public int age;
}

public class Test
{
    public static void Main()
    {
        Foo foo = new Foo { id = 189, name = "Paul", age = 31 };
        JObject jo = JObject.FromObject(foo);
        JArray ja = new JArray();
        foreach (var value in jo.Values())
        {
            ja.Add(value);
        }

        Console.WriteLine(ja);
    }
}

または、非 JSON 形式が本当に必要な場合は、JObject列挙を使用して値を自分で出力することもできます。

于 2012-05-10T20:36:02.023 に答える