У меня есть приложение форм Xamarin, которое содержит веб-просмотр. Я пытаюсь опубликовать форму, используя этот веб-просмотр, на стороне сервера asp. net aspx. Сначала я отправляю эти данные на входы в локальном файле html внутри моего приложения, используя EvaluateJavaScriptAsyn c. Данные отправляются в файл html без проблем. У меня есть список, который я конвертирую в строку json со стороны моего приложения перед переходом в файл html, и он проходит правильно. Затем с помощью кнопки отправки я отправляю эти данные на страницу aspx на стороне сервера с локального html. Данные отправлены успешно, но если я отправлю эту строку json, то со стороны сервера вы получите ошибку (исключение).
Исключение ...
JsonReaderException Unexpected character encountered while parsing value: o. Path'', line 1, position 1
Сторона Xamarin ...
Класс объекта.
public class PaymentData
{
public string access_key { get; set; }
public string profile_id { get; set; }
public string transaction_uuid { get; set; }
public string signed_field_names { get; set; }
public string unsigned_field_names { get; set; }
public string signed_date_time { get; set; }
public string locale { get; set; }
public string transaction_type { get; set; }
public string reference_number { get; set; }
public string currency { get; set; }
public string bill_to_forename { get; set; }
public string bill_to_surname { get; set; }
public string bill_to_email { get; set; }
public string bill_to_address_line1 { get; set; }
public string bill_to_address_state { get; set; }
public string bill_to_address_country { get; set; }
public string bill_to_address_city { get; set; }
public string polNum { get; set; }
public string userName { get; set; }
public string amount { get; set; }
public double duesTotal { get; set; }
public double addtAmt { get; set; }
public double deposits { get; set; }
public double duesPaid { get; set; }
public List<DueData> lifeDueData { get; set; }
}
public class DueData
{
public string paidDue { get; set; }
public double premium { get; set; }
public double lateFee { get; set; }
}
После добавления данных я преобразовал объект в json строку
PaymentData lData = new PaymentData();
string jsonOutput = JsonConvert.SerializeObject(lData);
HTML файл ...
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript">
function updatetextonwebview(jSonOgj) {
var plots = JSON.parse(jSonOgj);
document.getElementById("textElement1").value = plots.access_key;
document.getElementById("textElement2").value = plots.profile_id;
document.getElementById("textElement3").value = plots.transaction_uuid;
document.getElementById("textElement4").value = plots.signed_field_names;
...........................
document.getElementById("textElement23").value = plots.deposits;
document.getElementById("textElement24").value = plots.duesPaid;
document.getElementById("textElement25").value = plots.lifeDueData;
return plots.lifeDueData;
}
</script>
</head>
<body align="center">
<div class="container card">
<form id="payment_form" action="//....payment_confirmation_life.aspx" method="post">
<input type="hidden" class="hiddeninput" hidden="hidden" id="textElement1" name="access_key">
<input type="hidden" class="hiddeninput" hidden="hidden" id="textElement2" name="profile_id">
<input type="hidden" class="hiddeninput" hidden="hidden" id="textElement3" name="transaction_uuid">
<input type="hidden" class="hiddeninput" hidden="hidden" id="textElement4" name="signed_field_names">
........................
<input type="hidden" class="hiddeninput" hidden="hidden" id="textElement20" name="userName">
<input type="hidden" class="hiddeninput" hidden="hidden" id="textElement21" name="duesTotal">
<input type="hidden" class="hiddeninput" hidden="hidden" id="textElement22" name="addtAmt">
<input type="hidden" class="hiddeninput" hidden="hidden" id="textElement23" name="deposits">
<input type="hidden" class="hiddeninput" hidden="hidden" id="textElement24" name="duesPaid">
<input type="hidden" class="hiddeninput" hidden="hidden" id="textElement25" name="lifeDueData">
<input type="submit" id="submit" name="submit" value="Proceed" />
</form>
</div>
</body>
</html>
payment_confirmation_life.aspx код за ...
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Request.Form.Count > 0)
{
if (Request.Form["lifeDueData"] != null)
{
string demadData = Request.Form["lifeDueData"].ToString().Trim();
List<DueData> duelist = JsonConvert.DeserializeObject<List<DueData>>(demadData);
}
}
}
}
Исключение в строке DeserializeObject
JSON ...
[{"lateFee":250,"paidDue":"2020/01","premium":11896}]