簡體   English   中英

Xamarin / PHP,我想用C#(Xamarin)或我的PHP代碼將Jarray變成JObject

[英]Xamarin/PHP, I want to make my Jarray to a JObject, either in C# (Xamarin) or in my PHP-code

我想將我的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;

}

如果JArray是Json.net json數組,則JArray是一個JToken,它是一個JObject。

另外,您正在發送一個空數組,因為您沒有向其添加聯系人...

無論如何,如果您不能直接使用這些類,請首先在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;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM