Index: django/core/management/commands/dumpdata.py
===================================================================
--- django/core/management/commands/dumpdata.py	(Revision 6477)
+++ django/core/management/commands/dumpdata.py	(Arbeitskopie)
@@ -1,7 +1,8 @@
 from django.core.management.base import BaseCommand, CommandError
-
 from optparse import make_option
+import sys
 
+
 class Command(BaseCommand):
     option_list = BaseCommand.option_list + (
         make_option('--format', default='json', dest='format',
@@ -31,11 +32,12 @@
         except KeyError:
             raise CommandError("Unknown serialization format: %s" % format)
 
-        objects = []
-        for app in app_list:
-            for model in get_models(app):
-                objects.extend(model.objects.all())
+        def get_objects ():
+            for app in app_list:
+                for model in get_models(app):
+                    for obj in model.objects.all().order_by(model._meta.pk.attname):
+                        yield obj
         try:
-            return serializers.serialize(format, objects, indent=indent)
+            serializers.serialize(format, get_objects(), indent=indent, stream=sys.stdout)
         except Exception, e:
             raise CommandError("Unable to serialize database: %s" % e)
Index: django/core/serializers/json.py
===================================================================
--- django/core/serializers/json.py	(Revision 6477)
+++ django/core/serializers/json.py	(Arbeitskopie)
@@ -4,7 +4,6 @@
 
 import datetime
 from django.utils import simplejson
-from django.utils.simplejson import decoder
 from django.core.serializers.python import Serializer as PythonSerializer
 from django.core.serializers.python import Deserializer as PythonDeserializer
 try:
@@ -20,15 +19,34 @@
     """
     Convert a queryset to JSON.
     """
+    def start_serialization(self):
+        self._current = None
+        self.json_kwargs = self.options.copy()
+        self.json_kwargs.pop('stream', None)
+        self.json_kwargs.pop('fields', None)
+        self.stream.write("[")
+
     def end_serialization(self):
-        self.options.pop('stream', None)
-        self.options.pop('fields', None)
-        simplejson.dump(self.objects, self.stream, cls=DjangoJSONEncoder, **self.options)
+        if self.options.get("indent"):
+            self.stream.write("\n")
+        self.stream.write("]\n")
 
+    def end_object(self, obj):
+        # self._current has the field data
+        if not self.first:
+            self.stream.write(",")
+        if self.options.get("indent"):
+            self.stream.write("\n")
+        simplejson.dump(self.get_dump_object(obj), self.stream,
+                        cls=DjangoJSONEncoder, **self.json_kwargs)
+        self._current = None
+
     def getvalue(self):
+        # overwrite PythonSerializer.getvalue() with base Serializer.getvalue()
         if callable(getattr(self.stream, 'getvalue', None)):
             return self.stream.getvalue()
 
+
 def Deserializer(stream_or_string, **options):
     """
     Deserialize a stream or string of JSON data.
@@ -44,8 +62,8 @@
     """
     JSONEncoder subclass that knows how to encode date/time and decimal types.
     """
-
-    DATE_FORMAT = "%Y-%m-%d"
+    
+    DATE_FORMAT = "%d.%m.%Y"
     TIME_FORMAT = "%H:%M:%S"
 
     def default(self, o):
Index: django/core/serializers/base.py
===================================================================
--- django/core/serializers/base.py	(Revision 6477)
+++ django/core/serializers/base.py	(Arbeitskopie)
@@ -32,6 +32,7 @@
         self.selected_fields = options.get("fields")
 
         self.start_serialization()
+        self.first = True
         for obj in queryset:
             self.start_object(obj)
             for field in obj._meta.fields:
@@ -47,6 +48,8 @@
                     if self.selected_fields is None or field.attname in self.selected_fields:
                         self.handle_m2m_field(obj, field)
             self.end_object(obj)
+            if self.first:
+                self.first = False
         self.end_serialization()
         return self.getvalue()
 
@@ -55,7 +58,11 @@
         Convert a field's value to a string.
         """
         if isinstance(field, models.DateTimeField):
-            value = getattr(obj, field.name).strftime("%Y-%m-%d %H:%M:%S")
+            value = getattr(obj, field.name)
+            if value is None:
+                value = ''
+            else:
+                value = value.strftime("%d.%m.%Y %H:%M:%S")
         elif isinstance(field, models.FileField):
             value = getattr(obj, "get_%s_url" % field.name, lambda: None)()
         else:
Index: django/core/serializers/python.py
===================================================================
--- django/core/serializers/python.py	(Revision 6477)
+++ django/core/serializers/python.py	(Arbeitskopie)
@@ -25,12 +25,15 @@
         self._current = {}
 
     def end_object(self, obj):
-        self.objects.append({
+        self.objects.append(self.get_dump_object(obj))
+        self._current = None
+
+    def get_dump_object (self, obj):
+        return {
             "model"  : smart_unicode(obj._meta),
             "pk"     : smart_unicode(obj._get_pk_val(), strings_only=True),
             "fields" : self._current
-        })
-        self._current = None
+        }
 
     def handle_field(self, obj, field):
         self._current[field.name] = smart_unicode(getattr(obj, field.name), strings_only=True)
