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;
}
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;
}