Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在SAPUI5中从json向文本框显示数据_Javascript_Json_Sapui5 - Fatal编程技术网

Javascript 在SAPUI5中从json向文本框显示数据

Javascript 在SAPUI5中从json向文本框显示数据,javascript,json,sapui5,Javascript,Json,Sapui5,我想使用SAPUI5将JSON中的数据显示到文本框中 // JSON sample data var data = { firstName: "John", lastName: "Doe", birthday: {day:01,month:05,year:1982}, address:[{city:"Heidelberg"}], enabled: true }; // create JSON model instance var oModel = new

我想使用SAPUI5将JSON中的数据显示到文本框中

// JSON sample data
var data = {
    firstName: "John",
    lastName: "Doe",
    birthday: {day:01,month:05,year:1982},
    address:[{city:"Heidelberg"}],
    enabled: true
};

// create JSON model instance
var oModel = new sap.ui.model.json.JSONModel();
// set the data for the model
oModel.setData(data);
// set the model to the core
sap.ui.getCore().setModel(oModel);

// create your controls        
var oTextView = new sap.ui.commons.TextView("textView", {
    // bind text property of textview to firstName property in the model
    text: "{/firstName}",
    tooltip: "First Name"
});
var oTxt = new sap.ui.commons.TextField("txtField", {
    // bind text property of textfield to firstName property in the model
    value: "{/firstName}"
});
上面的代码正在工作,但当我在json文件中传输json数据并尝试加载此场景时,数据未加载

现在,我的Json文件如下所示:

{
  "UserDetails":[
{
  "userid": "Test-Id", 
  "sapname": "Test-SAP-Form", 
  "age": 37, 
  "annualleave": 32
}
]}
在Json文件中传输Json数据时,我使用以下代码加载数据:

var userDetailsModel = new sap.ui.model.json.JSONModel();
userDetailsModel.loadData("json/UserDetails.json");
userDetailsModel.setData("json/UserDetails.json");
sap.ui.getCore().setModel(userDetailsModel, "UserDetails");
但我无法在文本框中显示数据

我犯了什么错

数据绑定的(简单)语法是
{model>path}
,因此当您执行
setModel(model,“modelname”)
时,您需要执行
{modelname>path}

在您的情况下,所需的值为

var oTxt = new sap.ui.commons.TextField("txtField", {
    // bind text property of textfield to firstName property in the model
    value: "{UserDetails>/firstName}"
});
并删除带有
model.setData
的行,正如他在评论中提到的限定符


编辑:JSON文件与传递给控件的路径不同。使用该结构,您需要将路径设置为
{UserDetails>/UserDetails/0/firstName}

如果您先使用
加载数据,则不需要使用
设置数据
setData
需要一个对象/数组,而
loadData
已经将json文件中的对象/数组存储到我尝试过的模型中。不起作用。我按照你的指示做了,但仍然不起作用。好的,你的json文件看起来和我预期的不一样。你有使用SAPUI5将数据保存到json的例子吗?很高兴听到它起作用了。我不知道如何用UI5直接保存数据,我只是将它与ApacheTomcat一起使用,这样Java servlet就可以做类似的事情。你能给我一个例子,说明它如何与servlet一起用json保存数据吗?