【问题标题】:Preparing table in C# as PHP?在 C# 中将表准备为 PHP?
【发布时间】:2012-08-09 11:51:44
【问题描述】:

我对准备表有一些小问题。 一般我通常用 PHP 准备这个表:

array(2) {
  ["function"]=>
     string(14) "saveStats"
  ["data"]=>
  array(10) {
     ["id"]=>
         string(28) "6079f20ac3_1344412683016_427"
     ["stat"]=>
         array(2) {
             [461]=>
                 string(572) "1834!:!606113;2636701;2532259;8615557991;"
             [462]=>
                 string(664) "947679;1976657;1457921;1302869;2966923;2361071;6876943;5641369;560761;3469061;5438071;9646643;8575873;339307;9652169;2581441;5158451;6210209;6062971;2815237;3396139;2527643;2502571;7882529;536729;1171073;8825407;351427;1845373;8828471;1099463;6653011;5433293;86027;8258377;6748487;5237059;8006827;3996193;117389;7449523;9847147;3476761;7073981;7491493;1603837;8972801;699401;3354649;8120317;3405823;8545499;2672701;1373363;2397077;3417523;8772983;157999;6294929;6024589;6760669;5923937;4560691;8324143;824477;3575549;1372559;986287;4860203;5774323;1832353;4198973;3639841;9179101;718337;4949353;5745787;1608041;8169241;46549;3272723;7622267;"
    }
    ["userAgent"]=>
        string(67) "Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1"
    ["ip"]=>
        string(3) "::1"
    ["referer"]=>
        string(4) "Brak"
    ["limit"]=>
        int(1)
  }
}

["stat"] 中的数据可以是数组 10 或 2,每个数组都有“随机”数(查看 [461][462] 等)

我必须稍后将这些数据放入 JSON(我使用 newtonsoft.Json)。

如何在 C# 中准备这个对象?

【问题讨论】:

  • 你要的是 poco 还是 json?
  • 一般我想用 C# 准备 Json。但我不知道该怎么做,因为这里我有 ["stat"] 和“随机”数字(这个数字是一个 id)。

标签: c# php


【解决方案1】:

试试这个(.NET 4)(见下文),唯一的问题是列 461 和 462,C# 不允许变量名以数字开头(我已将它们重命名为 n461 和 n462)但很容易使用 newtonsoft.Json 对此进行补偿,请参阅类似问题 here

var table =  new {
    function = "saveStats",
    data = new  {
        id = "6079f20ac3_1344412683016_427" , 
        stat = new List<dynamic>  {
                          new {  n461 = "1834!:!606113;263..." },
                          new {  n462 = "947679;1976657;14..." }
                        },
        userAgent = "Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1",
        ip = "::1",
        referer = "Brak",
        limit = 1
    }
 };

我使用过动态类和匿名类,但您当然可以根据需要声明“真实”类。 (如果您使用的是 .NET 3.5 或更早版本,这是必须的)

【讨论】:

  • 这太棒了。但我对 n461 和 n462 有疑问。你看 - 那个 json 必须去网络服务。他们期待数字。好的,我明白了。谢谢
  • 我想了这么多,快速但不那么漂亮的解决方案是将列命名为 PLEASE_REMOVE_ME_462 和 PLEASE_REMOVE_ME_463,然后对 Json 字符串进行序列化,然后在发送到 Web 服务之前在 PLEASE_REMOVE_ME_ 上进行字符串替换: ) 更好的解决方案是做一个自定义序列化程序,如下所示stackoverflow.com/q/5404303/1045728
  • 是的,我做到了。再次感谢您
猜你喜欢
  • 2019-11-07
  • 2013-03-12
  • 1970-01-01
  • 2015-03-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
  • 1970-01-01
  • 2017-07-30
相关资源
最近更新 更多