0

私は2つの単純なPHPクラスを持っています

class Order{
    public $orderNo;
    public $lines = array();
    public $paid = false;

    public function addLine(OrderLine $line) {
        $this->lines[] = $line;
    }

public function setPaid($paid = true) {
        $this->paid = true;
    }
}

class OrderLine{

public function __construct($item, $amount){
    $this->item = $item;
    $this->amount = $amount;
}

    public $item;
    public $amount;
    public $options;
}

シリアライズ オブジェクトはhttps://github.com/mindplay-dk/jsonfreezeを使用します

...

$json = new JsonSerializer;
$data = $json->serialize($order);

出力があります:

{
  "#type": "Order",
  "orderNo": 123,
  "lines": [{
    "#type": "OrderLine",
    "item": "milk \"fuzz\"",
    "amount": 3,
    "options": null
  },{
    "#type": "OrderLine",
    "item": "cookies",
    "amount": 7,
    "options": {
      "#type": "#hash",
      "flavor": "chocolate",
      "weight": "1\/2 lb"
    }
  }],
  "paid": true
}

VB.NET で文字列 XMLRPC を送信する

Newtonsoft JSON を使用してライブ オブジェクトを取得しますか?

生きているVB.netまたはC#オブジェクトのjson文字列との類推によって互換性のあるフォーマットを作成する方法と同様に?

4

2 に答える 2

0

"#type": "注文"

"#type": "オーダーライン",

これはプロパティではなく、オブジェクトのタイプを示しています

于 2013-11-11T05:49:46.833 に答える
0

ここから始められることがあります。JSON 形式を表すプロパティを持ついくつかのクラスを作成します (未テストのコード、アイデアどおり)。

public class MyData
{
    [JsonProperty("#type")]
    public string Type { get; set; }

    [JsonProperty("#orderNo")]
    public int OrderNo { get; set; 

    [JsonProperty("paid")]
    public bool Paid { get; set; }

    [JsonProperty("lines")]
    public List<MyDataLine> Lines { get; set; }
}

public class MyDataLines
{
    [JsonProperty("#type")]
    public string Type { get; set; }

    [JsonProperty("options")]
    public MyDataLinesOptions Options { get; set; }

    // ... more
}

public class MyDataLinesOptions
{
    // ... more
}

次に、次のようにデータをシリアル化および逆シリアル化できます。

string json = "the json data you received";
MyData myData = JsonConvert.DeserializeObject<MyData>(json);

// ...

json = JsonConvert.SerializeObject(myData);
于 2013-11-10T18:44:15.210 に答える