0

Base64 文字列に変換しようとしている ArrayList が Android にあり、それを JSON を介して wcf サービスに渡し、wcf サービスが文字列をデータベースに挿入します。次に、データベースからそれを読み取り、.NET アプリケーションで逆シリアル化できるようにする必要があります。

これは、AndroidでArrayListをシリアル化する方法です:

    private String convertByteArrayToSave(byte[] b){
    if(b != null){
        return Base64.encodeToString(b,0,b.length,Base64.DEFAULT);
    }else{
        return "";
    }
}

private String convertListToStringToSave(ArrayList<myClasses.Shape> myList){
    ByteArrayOutputStream b = new ByteArrayOutputStream();
    ObjectOutputStream out;
    try {
        out = new ObjectOutputStream (b);
        out.writeObject(myList);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return convertByteArrayToSave(b.toByteArray());
}

次に、WCF サービスで Base64 文字列を取得して List(Of Shape) に逆シリアル化し、それをシリアル化してデータベースに挿入しようとしています。

    Private Function ConvertAndroidByteToDotNet(ByVal s As String) As Byte()
    Dim result As Byte() = Nothing
    Dim b As Byte() = CType(System.Convert.FromBase64String(s), Byte())
    Dim msTest As New MemoryStream(b)
    msTest.Seek(0, SeekOrigin.Begin)
    msTest.Position = 0
    Dim formatter As New Runtime.Serialization.Formatters.Binary.BinaryFormatter()
    formatter.AssemblyFormat = Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
    formatter.Binder = New BindChanger()
    Dim shapelist As List(Of ColbyDataTypes.Shape) = DirectCast(formatter.Deserialize(msTest), List(Of ColbyDataTypes.Shape))
    msTest.Close()

    Dim bin As New Runtime.Serialization.Formatters.Binary.BinaryFormatter()
    bin.AssemblyFormat = Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
    bin.Serialize(msTest, shapelist)

    result = msTest.ToArray()

    Return result
End Function

最終的な目標は、.NET アプリまたは Android アプリでこれらの形状のリストを作成できるようにし、作成元に関係なく .NET アプリと Android アプリでリストを読み取れるようにすることです。.NET から Shape を作成し、WCF を使用してそれを Android に読み込むと、それが可能になりますが、Android で作成するのが行き詰まっています。どんな助けにも感謝します、ありがとう。

4

1 に答える 1

2

JSONデータ形式を選択し、 GSONを選択して Android 側でオブジェクトを解析します。使い方は非常にシンプルで軽量です。JSONまたはこのJSON parseを使用して、Android からこの消費 Web サービスを確認してください。これが役立つことを願っています。

于 2012-04-17T17:28:49.733 に答える