打字稿json通过数组形成

时间:2018-02-19 19:34:57

标签: typescript

我的json对象结构应该是

customers: [{
  customer: [
    { key: 'customername', value: 'xxxx' },
    { key: 'address', value: 'xxxxxx' }
  ]}, {
    customer: [
      { key: 'customername', value: 'yyyyy' },
      { key: 'address', value: 'xxxxxxxxxx' }
  ]}]  

从后端获取数据如下

const customerArray = [];
for(let content of customers[i].customer)
  {
    const customervalue = [];
    let customername = { key: "customername", value: content.customername };
    let dataItemUserId = {key: "address", value: content.address}
       
    customervalue.push(customername); 
    customervalue.push(address);
       
    customerArray.push(customervalue);             
  } 	
processDataContent['customers']= dataEntryArray;

我无法找到一种方法如何使元素“客户”?我相信我需要修改我推送到客户数组的方式,即在customerArray.push(customervalue)行中;

任何线索? 附:打字稿的新内容可能会遗漏一些非常基本的东西

2 个答案:

答案 0 :(得分:0)

你的问题非常模糊,但我倾向于相信你对应该如何处理Typescript感到有些困惑。 也许这可能会有所帮助:

interface ICustomer {
    customer: { key: string, value: string }[]
}

function GetCustomers(): ICustomer[] {
    let customers: ICustomer[] = [];
    for(let content of customers)
    {
        customers.push({
            customer: [
                { key: 'customername', value: 'Stanislas' },
                { key: 'address', value: 'Belgium' }
            ]
        });
    }
    return customers;
}

您也可以在typescript sandbox中运行它以查看javascript输出的内容。

使用Typescript的重点是定义类型。 在这种情况下,只需定义一个ICustomer,您的代码就会变得更具可读性。

注意:如果您对JSON有任何控制权,我建议使用以下格式使其更具可读性:

interface ICustomer {
    customerName: string,
    address: string
}

function GetCustomers(): ICustomer[] {
    let customers: ICustomer[] = [];
    for(let content of customers)
    {
        customers.push({
            customerName: 'Stanislas',
            address: 'Belgium'
        });
    }
    return customers;
}

答案 1 :(得分:0)

我不明白为什么要存储这样的数据.. 根据您的输入和输出预期。以下简单的代码满足您的要求。



docker images purne