如何在PHP中创建一个数组,以便我的C#脚本将其作为数组接收?

时间:2018-06-08 20:57:48

标签: php json

我正在为iOS收据进行服务器端验证。

我想向客户发回两件事:

-the response code from Apple (an int)
-all the product identifiers (possibly an array or object)

我的C#接收器类需要一个int(响应代码)和所有产品标识符,可能是一个数组或对象。

数组中的问题是我必须预先定义元素的数量,这是我无法猜测的。

现在我有了这个:

$obj = (object) [
    'status' => $status,
    'productIds' => ???????];

echo json_encode($obj);

我应该怎么做?

1 个答案:

答案 0 :(得分:0)

Helloooo!

我的意思是没有任何php专家所以请原谅我,如果代码看起来不那么好。

PHP部分:

<?php

$status = 0;
$productIDs = array();

//i dont know how you get the data.. so, loopy loop
for ($x = 1; $x <= 20; $x++)
{
    $productIDs[] = $x;
}

//genereate object and fill 
$obj = new stdClass;
$obj->status = $status;
$obj->productIDs = $productIDs;

//encode object to json and show it
echo json_encode($obj);

?>

C#Part

创建一个用于从JSON创建对象的类

public class myClass
{
     public string status { get; set; }
     public int[] productIDs { get; set; }
}

现在只需获取JSON String并创建一个对象。

var jsonSerializer = new JavaScriptSerializer();

//i guess you kinda download the response from your php into a string or stream somehow.. i skipped this step
string jsonString = @"{""status"":45,""productIDs"":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]}";

myClass myObject = jsonSerializer.Deserialize<myClass>(jsonString);

与其他提到的一样,您可以使用List作为ProductID。取决于你的代码,风格或......等等。我个人更喜欢List。

希望我能提供帮助。