[英]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.