Share via


JsonWriter 클래스

정의

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

[Android.Runtime.Register("android/util/JsonWriter", DoNotGenerateAcw=true)]
public sealed class JsonWriter : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ICloseable
[<Android.Runtime.Register("android/util/JsonWriter", DoNotGenerateAcw=true)>]
type JsonWriter = class
    inherit Object
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
상속
JsonWriter
특성
구현

설명

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다. 스트림에는 리터럴 값(문자열, 숫자, 부울 및 null)과 개체 및 배열의 시작 및 끝 구분 기호가 모두 포함됩니다.

<h3>인코딩 JSON</h3> 데이터를 JSON으로 인코딩하려면 새 JsonWriter를 만듭니다. 각 JSON 문서에는 하나의 최상위 배열 또는 개체가 포함되어야 합니다. 필요에 <따라 구조체의 내용을 안내하고 배열 및 개체를 중첩할 때 작성기에서 메서드를 호출합니다. ul><li>강력한 배열/강력한>> 을 쓰<려면 먼저 를 호출#beginArray()합니다<. 적절한 #value 메서드를 사용하거나 다른 배열과 개체를 중첩하여 각 배열의 요소를 작성합니다. 마지막으로 를 사용하여 #endArray()배열을 닫습니다. <li>강력한 개체/강력한>> 개체를 쓰<려면 먼저 를 호출#beginObject()합니다<. 호출 #name 을 속성 값으로 번갈아 가며 각 개체의 속성을 씁니다. 적절한 #value 메서드를 사용하거나 다른 개체 또는 배열을 중첩하여 속성 값을 씁니다. 마지막으로 를 사용하여 #endObject()개체를 닫습니다. </ul>

<h3>예제</h3> 다음과 같은 메시지 스트림을 인코딩하려고 합니다.

{@code
            [
              {
                "id": 912345678901,
                "text": "How do I write JSON on Android?",
                "geo": null,
                "user": {
                  "name": "android_newb",
                  "followers_count": 41
                 }
              },
              {
                "id": 912345678902,
                "text": "@android_newb just use android.util.JsonWriter!",
                "geo": [50.454722, -104.606667],
                "user": {
                  "name": "jesse",
                  "followers_count": 2
                }
              }
            ]}

이 코드는 위의 구조를 인코딩합니다.

{@code
              public void writeJsonStream(OutputStream out, List<Message> messages) throws IOException {
                JsonWriter writer = new JsonWriter(new OutputStreamWriter(out, "UTF-8"));
                writer.setIndent("  ");
                writeMessagesArray(writer, messages);
                writer.close();
              }

              public void writeMessagesArray(JsonWriter writer, List<Message> messages) throws IOException {
                writer.beginArray();
                for (Message message : messages) {
                  writeMessage(writer, message);
                }
                writer.endArray();
              }

              public void writeMessage(JsonWriter writer, Message message) throws IOException {
                writer.beginObject();
                writer.name("id").value(message.getId());
                writer.name("text").value(message.getText());
                if (message.getGeo() != null) {
                  writer.name("geo");
                  writeDoublesArray(writer, message.getGeo());
                } else {
                  writer.name("geo").nullValue();
                }
                writer.name("user");
                writeUser(writer, message.getUser());
                writer.endObject();
              }

              public void writeUser(JsonWriter writer, User user) throws IOException {
                writer.beginObject();
                writer.name("name").value(user.getName());
                writer.name("followers_count").value(user.getFollowersCount());
                writer.endObject();
              }

              public void writeDoublesArray(JsonWriter writer, List<Double> doubles) throws IOException {
                writer.beginArray();
                for (Double value : doubles) {
                  writer.value(value);
                }
                writer.endArray();
              }}

각각 JsonWriter 은 단일 JSON 스트림을 작성하는 데 사용할 수 있습니다. 이 클래스의 인스턴스는 스레드로부터 안전하지 않습니다. 형식이 잘못된 JSON 문자열을 생성하는 호출은 와 함께 IllegalStateException실패합니다.

에 대한 Java 설명서입니다 android.util.JsonWriter.

이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

JsonWriter(Writer)

JSON으로 인코딩된 스트림out을 에 쓰는 새 instance 만듭니다.

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
JniPeerMembers

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

Lenient

이 작성기에 완화된 구문 규칙이 있으면 true를 반환합니다. -또는- 구문 규칙을 완화하도록 이 작성기를 구성합니다.

PeerReference

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 Object)
ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 Object)

메서드

BeginArray()

새 배열 인코딩을 시작합니다.

BeginArrayAsync()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

BeginObject()

새 개체 인코딩을 시작합니다.

BeginObjectAsync()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Close()

이 작성기와 기본 Writer을 플러시하고 닫습니다.

Dispose()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
EndArray()

현재 배열 인코딩을 종료합니다.

EndArrayAsync()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

EndObject()

현재 개체 인코딩을 종료합니다.

EndObjectAsync()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
Flush()

버퍼링된 모든 데이터가 기본 Writer 에 기록되고 해당 기록기를 플러시하는지 확인합니다.

FlushAsync()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

GetHashCode()

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Name(String)

속성 이름을 인코딩합니다.

NameAsync(String)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
NullValue()

를 인코딩합니다 null.

NullValueAsync()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
SetIndent(String)

인코딩된 문서의 각 들여쓰기 수준에 대해 반복할 들여쓰기 문자열을 설정합니다.

ToArray<T>()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
Value(Boolean)

를 인코딩합니다 value.

Value(Double)

를 인코딩합니다 value.

Value(Int64)

를 인코딩합니다 value.

Value(Number)

를 인코딩합니다 value.

Value(String)

를 인코딩합니다 value.

ValueAsync(Boolean)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

ValueAsync(Double)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

ValueAsync(Int64)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

ValueAsync(Number)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

ValueAsync(String)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

Wait()

현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

GetJniTypeName(IJavaPeerable)

한 번에 하나의 토큰인 스트림에 JSON(RFC 4627) 인코딩 값을 씁니다.

적용 대상