Xamarin/PHP,我想用C#(Xamarin)或我的PHP代码将我的Jarray制作成JObject

本文关键字:我的 PHP Xamarin 代码 Jarray JObject | 更新日期: 2023-09-27 18:36:48

我想把我的Jarray变成一个JObject,但我不确定我应该在哪里做。在 xamarin 或 PHP 中。

所以我将开始给你我在PHP中完成的数组,它看起来像这样:

$contacts = array(); 
while ($row = mysqli_fetch_array($stmt))
{
    $contact = array(
        "ID" => $row['ProduktID'],
        "Name" => $row['ProduktNamn'],
    );
}
echo json_encode($contacts, JSON_PRETTY_PRINT);

这是我在 Xamarin C# 中的代码,

static public async Task<JArray> getOurMainInfo() //Make it J0bject immediately? Or somehow transform it inside this function?
{
    var httpClientRequest = new HttpClient ();
    var result = await httpClientRequest.GetAsync ("http://localhost/getMyPhp.php");
    var resultString = await result.Content.ReadAsStringAsync ();
    var jsonResult = JArray.Parse (resultString).ToObject();
    return jsonResult;
}

Xamarin/PHP,我想用C#(Xamarin)或我的PHP代码将我的Jarray制作成JObject

A JArray 是 JToken 是 JToken,它是 JObject...如果 JArray 是一个 Json.net JSON 数组。

此外,您正在发送一个空数组,因为您没有向其添加联系人......

无论如何,如果你不能直接使用这些分支,首先在PHP上创建一个一致的模型,然后在xamarin部分解析它:

.PHP:

    $contacts = array(); 
    while ($row = mysqli_fetch_array($stmt))
    {
        $contact = new stdClass;
        $contact->ID = $row['ProduktID'];
        $contact->Name = $row['ProduktNamn'];
        $contacts[] = $contact;
    }
    echo json_encode($contacts, JSON_PRETTY_PRINT); 

然后在Xamarin上:

    public class Contact
    {
        public string ID{ get; set; } //change to the correct type
        public string Name{ get; set; }
    }
    //...
    static public async Task<List<Contact>> getOurMainInfo() //Make it J0bject immediately? Or somehow transform it inside this function?
    {
        var httpClientRequest = new HttpClient ();
        var result = await httpClientRequest.GetAsync ("http://localhost/getMyPhp.php");
        var resultString = await result.Content.ReadAsStringAsync ();
        var jsonResult = JsonConvert.DeserializeObject<List<Contact>>(resultString);
        return jsonResult;
}