JSONStreamingBuilder - Com escopo
Crie um objeto de construtor usado para criar uma carga JSON de fluxo grande para usar em uma solicitação REST ou SOAP para enviar dados em massa para uma API de terceiros. Você também pode criar a carga como uma cadeia de caracteres JSON para uma opção de não fluxo.
Use estes métodos no Workflow Studio etapa de script com sn_ih identificador de namespace. Por exemplo, você pode usar esta API para criar uma carga JSON no Workflow Studio Etapa de script e passe o valor retornado para a etapa REST para enviar a solicitação a um serviço de terceiros. Para obter mais informações, consulte Workflow Studio Etapa de script .
Você só pode usar esta API no Workflow Studio ambiente.
Ordem de chamada de API
Gere cargas JSON usando estas APIs na seguinte ordem:
- JSONStreamingBuilder Cria um objeto do construtor
- Use estes métodos na seguinte ordem para criar um objeto do construtor:
- JSONStreamingBuilder() : Instancia o objeto JSONStreamingBuilder.
- Com anexo () : Opcional. Cria o objeto JSON como um anexo de fluxo e o armazena na tabela Anexos de fluxo [streaming_attachment]. Se você não chamar esse método, a API criará a carga como uma cadeia de caracteres JSON.
- ExpiresAt() : Opcional. Define um horário em que o anexo expira. Também deve chamar Com anexo () método.
- compilação () : Retorna um objeto JSONStreamingAPI.
- JSONStreamingAPI Cria a carga JSON
- Use estes métodos na seguinte ordem para criar a carga JSON:
- StartObject() : Cria o objeto JSON primário.
- Métodos para gerar os pares de chave-valor JSON, como WriteFieldName() , WriteString() e WriteNumberField() .
- EndObject() : Fecha o objeto JSON primário.
- GetJSONString() ou GetAttachmentId() Retorna a cadeia de caracteres JSON ou o ID de anexo que você criou.
- fechar() : Fecha o objeto JSONStreamingAPI.
Limites de tamanho
As cargas geradas por meio desta API não podem exceder estes limites de tamanho:
- Anexos: 200 MB
- Cadeias de caracteres: 5 MB
Exemplos
Este exemplo mostra como criar um objeto JSON e armazená-lo na tabela Anexo [sys_attachment] com uma data de expiração definida.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.JSONStreamingBuilder()
.withAttachment() // Creates the JSON object in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the JSONStreamingAPI object.
builder.startObject() // Begins generating the JSON object.
.writeFieldName("firstName") // Adds a "firstName" field
.writeString("John") // Writes the value of the "firstName" field
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25") // Write a number field named "age" with value "25"
.writeFieldName("address")
.startObject() // Start a new object nested under the parent object
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray() // Start an array
.startObject() // Add the first object to the array
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject() // Add another object to the array
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
}
catch (err) {
gs.log(err);
}
finally {
builder.close();
}Como alternativa, este exemplo mostra como usar a API na etapa Script e criar a carga como uma cadeia de caracteres JSON. Você pode usar esta opção para criar cargas úteis abaixo de 5 MB.
(function execute(inputs, outputs) {
var builder = new sn_ih.JSONStreamingBuilder().build();
builder.startObject()
.enablePrettyPrint()
.writeTextElement("firstName","John")
.writeString("John")
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25")
.writeFieldName("address")
.startObject()
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray()
.startObject()
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject()
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
outputs.payload = builder.getJSONString();
})(inputs, outputs);Saída:
{
"firstName" : "John",
"lastName" : "Smith",
"age" : 25,
"address" : {
"streetAddress" : "21 2nd Street",
"city" : "Santa Clara",
"state" : "CA",
"postalCode" : "11111"
},
"phoneNumber" : [ {
"type" : "home",
"number" : "212 555-1234"
}, {
"type" : "fax",
"number" : "646 555-4567"
} ]
}JSONStreamingBuilder - JSONStreamingBuilder()
Instancia o objeto JSONStreamingBuilder.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
var builder = new sn_ih.JSONStreamingBuilder()
JSONStreamingBuilder - build()
Retorna um objeto JSONStreamingAPI.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| JSONStreamingAPI | Objeto JSON de fluxo usado para construir a carga. |
Este exemplo mostra como criar um objeto JSON e armazená-lo na tabela Anexo [sys_attachment] com uma data de expiração definida.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.JSONStreamingBuilder()
.withAttachment() // Creates the JSON object in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the JSONStreamingAPI object.
builder.startObject() // Begins generating the JSON object.
.writeFieldName("firstName") // Adds a "firstName" field
.writeString("John") // Writes the value of the "firstName" field
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25") // Write a number field named "age" with value "25"
.writeFieldName("address")
.startObject() // Start a new object nested under the parent object
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray() // Start an array
.startObject() // Add the first object to the array
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject() // Add another object to the array
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
}
catch (err) {
gs.log(err);
}
finally {
builder.close();
}
JSONStreamingBuilder - expiresAt(Object expiresAt)
Define um horário em que o anexo expira. Também deve chamar Com anexo () método. Se você não chamar este método, o anexo expirará duas horas a partir do momento em que o anexo é criado.
| Nome | Tipo | Descrição |
|---|---|---|
| dataExpiração | GlideDateTime | Objeto definido quando o anexo expira.
|
| Tipo | Descrição |
|---|---|
| JSONStreamingBuilder | Objeto do construtor usado para iniciar a carga JSON. |
Este exemplo mostra como criar um objeto JSON e armazená-lo na tabela Anexo [sys_attachment] com uma data de expiração definida.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.JSONStreamingBuilder()
.withAttachment() // Creates the JSON object in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the JSONStreamingAPI object.
builder.startObject() // Begins generating the JSON object.
.writeFieldName("firstName") // Adds a "firstName" field
.writeString("John") // Writes the value of the "firstName" field
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25") // Write a number field named "age" with value "25"
.writeFieldName("address")
.startObject() // Start a new object nested under the parent object
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray() // Start an array
.startObject() // Add the first object to the array
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject() // Add another object to the array
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
}
catch (err) {
gs.log(err);
}
finally {
builder.close();
}
JSONStreamingBuilder - withAttachment()
Cria o objeto JSON como um anexo de fluxo e o armazena na tabela Anexos de fluxo [streaming_attachment]. Se você não chamar esse método, a API criará a carga como uma cadeia de caracteres JSON.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| JSONStreamingBuilder | Objeto do construtor usado para iniciar a carga JSON. |
Este exemplo mostra como criar a carga JSON e salvá-la como um anexo.
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.JSONStreamingBuilder()
.withAttachment() // Creates the JSON object in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the JSONStreamingAPI object.
builder.startObject() // Begins generating the JSON object.
.writeFieldName("firstName") // Adds a "firstName" field
.writeString("John") // Writes the value of the "firstName" field
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25") // Write a number field named "age" with value "25"
.writeFieldName("address")
.startObject() // Start a new object nested under the parent object
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray() // Start an array
.startObject() // Add the first object to the array
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject() // Add another object to the array
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
}
catch (err) {
gs.log(err);
}
finally {
builder.close();
}
Este exemplo mostra como criar a carga JSON e salvá-la como uma cadeia de caracteres.
try {
var builder = new sn_ih.JSONStreamingBuilder().build();
builder.startObject()
.writeFieldName("firstName")
.writeString("John")
.writeFieldName("lastName")
.writeString("Smith")
.writeNumberField("age","25")
.writeFieldName("address")
.startObject()
.writeStringField("streetAddress", "21 2nd Street")
.writeStringField("city", "Santa Clara")
.writeStringField("state", "CA")
.writeStringField("postalCode", "11111")
.endObject()
.writeFieldName("phoneNumber")
.startArray()
.startObject()
.writeFieldName("type")
.writeString("home")
.writeFieldName("number")
.writeString("212 555-1234")
.endObject()
.startObject()
.writeFieldName("type")
.writeString("fax")
.writeFieldName("number")
.writeString("646 555-4567")
.endObject()
.endArray()
.endObject()
gs.log(builder.getJSONString());
}
catch (err) {
gs.log("Exception: " + err);
}
finally {
builder.close();
}
{
"firstName" : "John",
"lastName" : "Smith",
"age" : 25,
"address" : {
"streetAddress" : "21 2nd Street",
"city" : "Santa Clara",
"state" : "CA",
"postalCode" : "11111"
},
"phoneNumber" : [ {
"type" : "home",
"number" : "212 555-1234"
}, {
"type" : "fax",
"number" : "646 555-4567"
} ]
}