Why does angular ng-bind not read \n line breaks from JSON?
It does. The issue is html doesn't display it because of the white-space default setting, change your div to this:
<div ng-bind="textFromJSON" style="white-space:pre-wrap"></div>
See https://jsfiddle.net/xtqe7on2/ as an example
In Angular 2+ you can use like this:
<pre>{{textInJSON | json}}</pre>