如何在地图中添加arraylist

时间:2018-01-15 17:55:07

标签: android dictionary

我试图模仿这个结构将数据发布到mailchimp,即时通讯使用排球

{
 "email_address": "testchimp@gmail.com",
    "status": "subscribed",
    "merge_fields": {
        "FNAME": "testmailchimp",
        "LNAME": "testingit",
     }  
}

我做到了这一点,但我需要添加FNAME和LNAME,我不知道该怎么做

 @Override
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                params.put("email_address","testchimp@gmail.com");
                params.put("status","unsubscribed");
                //here i want to add the arraylist FNAME and LNAME
                return params;
            }
  

解决了我的问题

final JSONObject jsonBody = new JSONObject("{\"email_address\":\"mailchimptester@gmail.com\"," +
                "\"status\":\"unsubscribed\"," +
                "\"merge_fields\":{\"FNAME\":\"test\",\"LNAME\":\"teste\"}}");

所以有了这个我可以做json我想要的没有地图然后在这里验证它https://jsonlint.com/

1 个答案:

答案 0 :(得分:1)

Map不是HashMap<String,String> merge_fields = new HashMap<>(); merge_fields.put("FNAME","testmailchimp"); merge_fields.put("LNAME","testingit"); String merge_fields_param = new JSONObject(merge_fields).toString(); params.put("merge_fields",merge_fields_param); <h:form id="formExecutions"> <p:dataGrid id="jobs" value="#{jobExecutorController.jobExecutions}" var="job" rows="5" paginator="true" emptyMessage="#{MessageResources['text.noRecordsFound']}" paginatorPosition="bottom" columns="1" layout="grid"> <f:facet name="header"> #{MessageResources['text.batchProcesses']} </f:facet> <p:outputPanel layout="block" > <p:panelGrid cellpadding="5" styleClass="vf-panelGrid"> <p:row style="width:100%"> <p:column> <p:outputLabel for="executionId" value="#{MessageResources['text.executionId']}:" style="font-weight:bold"/> </p:column> <p:column> <h:outputText id="executionId" value="#{job.executionId}" /> </p:column> <p:column> <p:outputLabel for="name" value="#{MessageResources['text.name']}:" style="font-weight:bold"/> </p:column> <p:column style="width:10%"> <h:outputText id="name" value="#{job.name}"/> </p:column> <p:column style="width:50%" rowspan="2"> <p:progressBar id="progressBar" widgetVar="progressBar" ajax="true" value="#{progressController.progress(job)}" labelTemplate="{value}%" styleClass="animated" style="height: 20px; line-height: 20px;" global="false" interval="3000"> <p:ajax event="complete" listener="#{progressController.onCompleteJob(job)}" update="messageDisplay" process="@this"/> <p:ajax update="jobInfo"/> </p:progressBar> </p:column> <p:column style="width:4%" /> <p:column rowspan="2" style="text-align:right"> <p:commandButton id="restart" onclick="PF('confirmRestartJob').show()" styleClass="coloured-icons-batch restart-image-icon blink" disabled="#{not job.enableRestartAbandon}" immediate="true" title=""> <f:setPropertyActionListener value="#{job.executionId}" target="#{jobExecutorController.executionIdSelected}" /> <f:setPropertyActionListener value="#{job.name}" target="#{jobExecutorController.executionNameSelected}" /> </p:commandButton> <p:tooltip for="restart" value="#{MessageResources['text.restartJobExecution']}" position="top"></p:tooltip> <p:spacer width="10" /> <p:commandButton id="stop" onclick="PF('confirmStopJob').show()" styleClass="coloured-icons-batch stop-image-icon blink" disabled="#{not job.enableStop}" immediate="true" title=""> <f:setPropertyActionListener value="#{job.executionId}" target="#{jobExecutorController.executionIdSelected}" /> <f:setPropertyActionListener value="#{job.name}" target="#{jobExecutorController.executionNameSelected}" /> </p:commandButton> <p:tooltip for="stop" value="#{MessageResources['text.stopJobExecution']}" position="top"></p:tooltip> <p:spacer width="10" /> <p:commandButton id="abandon" onclick="PF('confirmAbandonJob').show()" styleClass="coloured-icons-batch abandon-image-icon blink" disabled="#{not job.enableRestartAbandon}" immediate="true" title=""> <f:setPropertyActionListener value="#{job.executionId}" target="#{jobExecutorController.executionIdSelected}" /> <f:setPropertyActionListener value="#{job.name}" target="#{jobExecutorController.executionNameSelected}" /> </p:commandButton> <p:tooltip for="abandon" value="#{MessageResources['text.abandonJobExecution']}" position="top"></p:tooltip> </p:column> </p:row> </p:panelGrid> <h:panelGroup id="jobInfo" > <p:panelGrid columns="4" cellpadding="5" styleClass="vf-panelGrid"> <p:outputLabel for="creationDate" value="#{MessageResources['text.creationDate']}:" style="font-weight:bold"/> <h:outputText id="creationDate" value="#{job.formattedDate(job.createdDate)}" /> <p:outputLabel for="startDate" value="#{MessageResources['text.dateStartProcess']}:" style="font-weight:bold"/> <h:outputText id="startDate" value="#{job.formattedDate(job.startedDate)}" /> <p:outputLabel for="lastUpdate" value="#{MessageResources['text.lastUpdate']}:" style="font-weight:bold"/> <h:outputText id="lastUpdate" value="#{job.formattedDate(job.lastUpdate)}" /> <p:outputLabel for="toProcess" value="#{MessageResources['text.itemsToProcess']}:" style="font-weight:bold"/> <h:outputText id="toProcess" value="#{job.itemsToProcess}" /> <p:outputLabel for="endDate" value="#{MessageResources['text.ended']}:" style="font-weight:bold"/> <h:outputText id="endDate" value="#{job.formattedDate(job.endedDate)}" /> <p:outputLabel for="processed" value="#{MessageResources['text.itemsProcessed']}:" style="font-weight:bold"/> <h:outputText id="processed" value="#{job.itemsProcessed}" /> <p:outputLabel for="status" value="#{MessageResources['text.state']}:" style="font-weight:bold"/> <h:outputText id="status" value="#{job.status}" /> </p:panelGrid> </h:panelGroup> </p:outputPanel> <p:spacer width="5"/> <p:separator /> <p:spacer width="5"/> </p:dataGrid> 。您可以使用此代码

来完成
@Named("progressController")
@RequestScoped
public class ProgressController
{    
    @EJB
    private EJBJobRepositoryLocal ejbJobRepository;

    public Long progress(DMJob jobExecution) throws VfCmsSqlException
    {
        if (jobExecution.getStatus().equals(BatchStatus.STARTED.name())) {
            jobExecution.setProgress(ejbJobRepository.getJobProgress(jobExecution.getExecutionId()));
        }

        PrimeUtil.get().update("formExecutions:jobInfo");

        return jobExecution.getProgress();
    }

    public void onCompleteJob(DMJob jobExecution)
    {
        Object[] parameters = {jobExecution.getName(), jobExecution.getExecutionId()};

        Messages.displayInfoMessage("text.jobComplete", parameters);
    }
}